文章

1

粉丝

0

获赞

0

访问

58

头像
2025 年 5 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年7月23日 16:20
阅读数 58

1,枚举遍历一遍,当前位置的元素判断当前位置的元素i是否与下一个元素i+1相等,如果相等,直接跳到i+2,如果不相等这就是答案,直接记录答案,跳出循环。

int getOnceNum(int a[]){
   int ans = -1;
   for(int i = 0; i<n;){
     if(a[i]==a[i+1])i=i+2;
     else {
     ans = a[i];
     break;
     }
   }
   return ans;
}

单层枚举遍历,平均时间复杂度O(n),空间复杂度O(1)。


评分及理由

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

得分:3分

理由:学生的设计思想与标准答案一致,即通过遍历数组并比较相邻元素来找到仅出现一次的元素。思路正确,不扣分。

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

得分:6分

理由:学生的代码实现基本正确,但存在以下逻辑错误:

  • 1. 函数参数中缺少数组长度参数n,导致代码无法正确运行。
  • 2. 循环条件i<n可能导致数组越界,因为循环内访问了a[i+1]

扣分:2分(每处逻辑错误扣1分)。

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

得分:2分

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

题目总分:3+6+2=11分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发