文章
4
粉丝
0
获赞
0
访问
104
(1)
判断奇数位与偶数位是否相等,不相等返回前一个的值
(2)
int find(int *A,int n){
for(int i=0;i<n;i+=2){
if(A[i]!=A[i+1])return A[i];
}
return 0;
}
(3)时间复杂度:O(n)空间复杂度O(1)
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的设计思想基本正确,但表述不够严谨。标准答案中明确指出“顺序遍历坐标为偶数的元素”,而学生仅提到“判断奇数位与偶数位是否相等”,没有明确说明遍历的起始点和步长。因此扣1分。
(2)得分及理由(满分8分)
得分:6分
理由:学生的代码实现基本正确,但存在以下问题:
i<n
,可能导致数组越界(当i
为n-1
时,A[i+1]
越界)。标准答案中循环条件为i<n-1
,更严谨。扣1分。return 0
不正确,如果目标元素是最后一个元素(如数组长度为奇数时),此代码无法正确返回。标准答案中返回A[n-1]
更合理。扣1分。(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了时间复杂度为O(n),并额外提到空间复杂度O(1),虽然题目未要求空间复杂度分析,但此处不影响得分。
题目总分:2+6+2=10分
登录后发布评论
暂无评论,来抢沙发