文章
7
粉丝
0
获赞
0
访问
239
(1)
①若要找的数为第一个数,遍历数组发现第一个元素与第二个不相等,直接输出第一个元素值
②若要找的数不为第一个数,遍历数组,若当前元素与后一个相等, 跳过下一个元素继续遍历,若当前元素与下一个不相等,则直接输出下一个元素
(2)
int find(int a[], int n) {
int i = 0;
for (i = 0; i < n; i ++ ) {
if (a[i] != a[i + 1]) break; // 要找到元素是第一个元素,直接输出该元素
else {
if (a[i] == a[i + 1]) i ++ ; // 当前元素与下个元素相等,跳过一个元素继续遍历
else {
i ++ ; // 当前元素与后一个不相等,那么后一个元素即为要找到元素
break;
}
}
}
return a[i];
}
(3) 时间复杂度 O(n)
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的设计思想基本正确,但表述不够简洁和清晰。第一部分描述正确,但第二部分描述逻辑稍显混乱,没有明确指出遍历的步长(如标准答案中的步长为2),导致理解上不够直接。扣1分。
(2)得分及理由(满分8分)
得分:5分
理由:学生的代码实现存在逻辑错误。具体问题如下:
a[i] !...
登录后发布评论
暂无评论,来抢沙发