文章

5

粉丝

0

获赞

0

访问

384

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

采用双指针的方式,基于数列相同元素相邻的特性,通过一次遍历找出只出现一次的元素。

int singlefind(int *nums, int numsSize){

     if(numsSize==1) return nums[0];
     for(int i=0.j=1;j<numsSize;j+=2,i+=2){
          if(nums[i]!=nums[j]) return nums[i];
     }
     return nums[numsSize-1];
}

算法对数组进行了一次遍历,使用常数个辅助空间,时间复杂度为O(n),空间复杂度为O

(1)。


评分及理由

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

得分:3分

理由:学生采用了双指针的方式,基于数列相同元素相邻的特性,通过一次遍历找出只出现一次的元素。虽然表述与标准答案不同,但思路正确且高效,符合题目要求。

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

得分:6分

理由:代码逻辑基本正确,但存在以下问题:

  • 代码中存在语法错误(for(int i=0.j=1;中的逗号应为分号),扣1分。
  • 代码中未对边界条件(如数组长度为1)进行详细注释,扣1分。
  • 代码整体实现与标准答案一致,但未完全按照题目要求给出关键注释,扣1分。

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(n),且空间复杂度为O(1),符合题目要求。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发