文章
6
粉丝
0
获赞
0
访问
297
(1)从前往后遍历,对遍历到的当前元素A[i]判断是否与a[i+1]相等,若不相等,当前元素就为仅出现一次的元素,将result变量设置为当前遍历的元素,退出遍历。
(2)
int findSingleElem(int A[],int n){
int result = A[0];//设置初始值
for(int i = 0;i < n-1;i ++){//遍历数组
if(A[i] != A[i+1]){//如果相邻元素不等,找到单一元素
result = A[i];
break;
}
}
return result;
}
(3)遍历了一遍数组,时间复杂度为O(n)。
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的基本设计思想是正确的,即通过遍历数组并比较相邻元素来找到仅出现一次的元素。然而,学生没有明确指出需要遍历坐标为偶数的元素,这一点与标准答案不完全一致,因此扣1分。
(2)得分及理由(满分8分)
得分:6分
理由:学生的代码实现基本正确,能够通过遍历数组并比较相邻元素来找到目标元素。然而,代码中没有处理最后一个元素可能是目标元素的情况(例如数组长度为奇数时),这一点与标准答案不完全一致,因此扣2分。此外,代码中的初始值设置为A[0]可能在某些情况下不正确(例如第一个元素就是目标元素时),但题目中给出的示例不会出现这种情况,因此不额外扣分。
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了算法的时间复杂度为O(n),与标准答案一致,因此不扣分。
题目总分:2+6+2=10分
登录后发布评论
暂无评论,来抢沙发