文章
4
粉丝
0
获赞
0
访问
111
(1)
先判断前两个值是否相等,再设计两个指针,一前一后依次遍历数组,若所指的数据不同则返回后者的值。
(2)
int find(int *A,int n){
if(A[0]!=A[1])return A[0];
int i=1,j=2;
while(j<n){
if(A[i]!=A[j])return A[j];
i++;
j++;
}
return 0;
}
(3)时间复杂度:O(n)空间复杂度O(1)
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的设计思想与标准答案不同,但思路是正确的。学生提出使用两个指针遍历数组,虽然方法可行,但不够简洁,且描述不够清晰。因此扣1分。
(2)得分及理由(满分8分)
得分:5分
理由:学生的代码实现与设计思想一致,但存在逻辑错误。具体问题如下:
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了时间复杂度为O(n),与标准答案一致,不扣分。
题目总分:2+5+2=9分
登录后发布评论
暂无评论,来抢沙发