文章
10
粉丝
0
获赞
0
访问
495
(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 == 0
和i == n - 1
)是正确的,但整体逻辑略显冗余,不如标准答案简洁。(3)得分及理由(满分2分)
得分:2分
理由:...
登录后发布评论
暂无评论,来抢沙发