文章

10

粉丝

0

获赞

0

访问

495

头像
2025 年 5 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年7月22日 23:13
阅读数 65

(1) 由于相同元素一定相邻,则只出现一次的元素必然在第奇数个位置上,查找所有奇数位的数字,若它与相邻的两个元素都不相同,该数字即为所求。

(2) 

int once(int A[], int n) {

    for (int i = 0; i < n; i++ ) {

        if (i == 0 && A[i + 1] != A[i])

             return A[i];

        if (i == n - 1 && A[i - 1] != A[i])

            return A[i];

        if (i % 2 == 0 && A[i] != A[i + 1] && A[i] != A[i - 1])

            return A[i];

    }

}

(3)时间复杂度O(n)


评分及理由

(1)得分及理由(满分3分)

得分:2分

理由:学生的设计思想基本正确,但表述不够准确。学生提到“查找所有奇数位的数字”,但实际上应该明确是“比较相邻元素对”。虽然思路正确,但表述不够清晰,扣1分。

(2)得分及理由(满分8分)

得分:6分

理由:学生的代码实现基本正确,但存在以下问题:

  • 代码中使用了i % 2 == 0来判断偶数位,但未明确说明偶数位与奇数位的逻辑关系,容易引起混淆。
  • 代码中对边界条件的处理(如i == 0i == n - 1)是正确的,但整体逻辑略显冗余,不如标准答案简洁。
  • 缺少注释,关键逻辑未说明,扣1分。
  • 代码逻辑正确但不够高效,扣1分。

(3)得分及理由(满分2分)

得分:2分

理由:...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发