文章
7
粉丝
0
获赞
0
访问
306
(1)从前向后遍历到倒数第二个位置,每次循环比较当前元素和后一个元素,,每次向前移动两个单位。当第一次出现其与后一个元素不等时,一定是这个元素。
(2)
int find(A[]. int n) //A为数组,n为数组总长度
{
for (int i = 0; i < n - 1; i += 2) // 从0开始,每次递增2的循环
if (A[i} != A[i + 1] return A[i]; //在数组中间
}
return A[n - 1]; //在最后
(3)O(n)
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的设计思想与标准答案一致,描述了正确的遍历和比较方法,且逻辑清晰。
(2)得分及理由(满分8分)
得分:6分
理由:
int find(A[]. int n)
应为int find(int A[], int n)
),扣1分。A[i}
应为A[i]
),扣1分。(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了时间复杂度为O(n),与标准答案一致。
题目总分:3+6+2=11分
登录后发布评论
暂无评论,来抢沙发