文章

7

粉丝

0

获赞

0

访问

421

头像
【250518年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2025年5月18日 20:21
阅读数 55

计算机考研408统考历年真题及答案解析

1. 基本设计思想:使用双指针的方法,两个指针p,q初始值都为0,在遍历的过程中先移动指针q,若出现A[p]!=A[q],则判断q-p==1是否成立,若成立者返回A[p],否则令p=q,然后继续移动指针q。重复上述操作指导找到目标元素。

2.实现代码如下:

int solution(int A[],int n){
   int p=0,q=0;
   for(;q<n;q++){
      if(A[p]!=A[q])
        if(q-p==1) return A[p];
        else p=q;
   }
   return A[q];//目标元素是最后一个元素
}

3.时间复杂度为O(n)


评分及理由

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

得分:3分

理由:学生的设计思想虽然与标准答案不同,但同样是正确的。双指针的方法可以有效地找到仅出现一次的元素,且逻辑清晰。

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

得分:7分

理由:代码实现基本正确,但存在一个逻辑错误。在最后一行返回return A[q];时,q的值已经超出了数组的边界(因为q在循环结束后为n),应该改为return A[p];return A[n-1];。此外,代码注释较少,但关键逻辑清晰。

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

得分:2分

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

题目总分:3+7+2=12分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发