文章

14

粉丝

0

获赞

0

访问

1.0k

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

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

解:(1)遍历数组,检查当前元素是否与下一个元素相同。由于相同元素必须相邻,可以跳过成对元素。

(2)

int findSingleLinear(const vector<int>& nums) {
    for (int i = 0; i < nums.size(); i += 2) {  // 每次跳 2 步
        if (i + 1 >= nums.size() || nums[i] != nums[i + 1]) {
            return nums[i];  // 找到唯一元素
        }
    }
    return -1;  // 未找到
}

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


评分及理由

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

得分:3分

理由:学生的设计思想与标准答案一致,即通过遍历数组并比较相邻元素来找到唯一出现的元素。思路正确且表述清晰。

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

得分:7分

理由:学生的代码实现基本正确,但存在以下问题:

  • 使用了vector而非题目要求的数组,虽然功能正确,但不符合题目要求,扣1分。
  • 代码逻辑正确,包括边界条件的处理(如i + 1 >= nums.size()),但返回-1的处理与题目要求不符(题目保证存在唯一元素),虽然不影响功能,但不够严谨,扣1分。

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

得分:2分

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

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发