文章
6
粉丝
0
获赞
0
访问
388
(1) 1,初始化指针指向数组的第一位为当前位,若后一位与当前位相等,则将指针向后两位继续之前的步骤
2,若后一位与当前位不等或当前位为最后一位,则当前指针所指即为所找元素
(2)
int find(int A[],int n){
int i = 0; //初始化指针
while(i<n-1&&A[i]==A[i+1]) //当i为最后一位或后一位与当前位不等则跳出循环
i += 2;
return A[i]; //返回找到元素
}
(3)时间复杂度为O(n)
评分及理由
(1)得分及理由(满分3分)
得分:3分。学生的设计思想与标准答案基本一致,通过遍历数组并比较相邻元素来找到仅出现一次的元素。思路清晰且正确,因此不扣分。
(2)得分及理由(满分8分)
得分:8分。学生的代码实现与设计思想一致,逻辑正确。代码中初始化指针并循环比较相邻元素,若不等则返回当前元素。注释清晰,关键步骤明确,符合题目要求。
(3)得分及理由(满分2分)
得分:2分。学生正确分析了算法的时间复杂度为O(n),与标准答案一致,因此不扣分。
题目总分:3+8+2=13分
登录后发布评论
暂无评论,来抢沙发