文章

4

粉丝

0

获赞

0

访问

111

头像
2025 年 5 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年6月23日 15:43
阅读数 39

(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分

理由:学生的代码实现与设计思想一致,但存在逻辑错误。具体问题如下:

  • 代码中返回的是后者的值(A[j]),而题目要求返回仅出现一次的元素,逻辑错误会导致结果不正确(例如数组{3,3,6,6,0,0,9}会返回0而不是9)。扣2分。
  • 代码中存在中文分号(“;”)和中文括号(“}”)的语法错误,扣1分。

(3)得分及理由(满分2分)

得分:2分

理由:学生正确分析了时间复杂度为O(n),与标准答案一致,不扣分。

题目总分:2+5+2=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发