文章

75

粉丝

0

获赞

0

访问

15.5k

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


评分及理由

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

得分:3分

理由:学生的基本设计思想与标准答案基本一致,即通过遍历数组,维护前缀最大值和最小值,并根据当前元素的正负号选择与最大值或最小值相乘。思路正确,表述清晰。但存在一处不严谨之处:在描述“若为正,与max比较,max大,则乘±max”中,“±max”的写法可能引起歧义(应为“乘max”),且未明确说明初始时res[0]需要特殊处理(即res[0] = A[0] * A[0])。由于核心思想正确,仅扣1分。

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

得分:4分

理由:学生的代码实现了基本思想,但存在以下逻辑错误:
1. 变量minmax初始化为0是错误的。如果数组A中所有元素都大于0,则min始终为0,导致当A[i]为负数时,res[i] = A[i] * 0 = 0,这显然错误(例如A = {1,4,-9,6},res[2]应为81,但按此代码得到0)。正确初始化应为min = A[0]max = A[0]
2. 未处理第一个元素res[0]的特殊情况。按照题目定义,对于i=0,j只能取0,因此res[0]应为A[0] * A[0]。但学生代码中直接进入循环,当i=0时,若A[0]为正,则res[0] = A[0] * max,而max初始为0,导致res[0]错误(除非A[0]恰好为0)。
3. 循环条件中的逗号分隔符for (i = 0, i < n, i++)在C/C++中是语法错误(应为分号),但第二次识别已修正为for (int i = 0; i < n; i++),不扣分。
由于存在两处关键逻辑错误,各扣1.5分,共扣3分。

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

得分:2分

理由:学生正确给出了时间复杂度O(n)和空间复杂度O(1),与标准答案一致,不扣分。

题目总分:3+4+2=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发