文章

75

粉丝

0

获赞

0

访问

15.8k

头像
2026 年 408 冲刺预测 3 套卷(一) - 第41题回答
数据结构
发布于2025年12月3日 15:51
阅读数 181


评分及理由

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

学生给出的基本设计思想是暴力枚举法:对于每个元素 A[i],依次与后面的每个元素计算绝对值差并比较,取最小值填入 res[i]。该思路正确,但效率较低(O(n²)),未达到题目要求的“尽可能高效”。标准答案采用 O(n log n) 的优化算法,但题目并未强制要求必须达到最优复杂度,只要思路正确即可。因此,该部分思路正确,不扣分。
得分:4分

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

学生的代码实现存在多处逻辑错误:
1. 在第一个 for 循环中,对每个 i 都执行了 `if (A[i] > A[i + 1]) { res[i] = A[i] - A[i + 1]; } else { res[i] = A[i + 1] - A[i]; }`,这会导致 res[i] 初始化为 A[i] 与 A[i+1] 的差,但若 i = n-1,则 A[i+1] 越界访问。
2. 紧接着的 `if (i == n - 1) res[i] = 1;` 将最后一个元素设为 1,而非题目要求的 -1。
3. 内层 for 循环中,计算 temp 后立即与 res[i] 比较并更新,逻辑正确,但外层初始赋值多余且可能导致错误(因为初始赋值可能覆盖后续更小的差值)。
4. 代码整体结构混乱,存在冗余操作和边界处理错误。
由于核心的双重循环遍历比较思路正确,但实现有较多逻辑错误,扣分。根据错误严重程度,扣 3 分。
得分:4分

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

学生正确分析了暴力解法的时间复杂度 O(n²) 和空间复杂度 O(1),与算法一致。
得分:2分

题目总分:4+4+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发