文章

26

粉丝

0

获赞

0

访问

241

头像
2025年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年12月7日 12:00
阅读数 6


评分及理由

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

学生作答的基本设计思想是:对每个A[i],遍历所有j(从0到n-1),计算A[i]*A[j]并记录最大值,然后存入res[i]。这种方法虽然正确,但时间复杂度为O(n²),不符合题目要求的“尽可能高效”。标准答案采用从右向左遍历,利用当前子数组的最大值和最小值,在O(n)时间内完成,效率更高。学生的思路正确但不够高效,因此扣1分。得分:3分。

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

学生给出的代码实现了其设计思想,即双重循环计算每个A[i]与所有A[j]乘积的最大值。代码中存在以下问题:
1. 变量名大小写不一致:函数参数为A,但代码中使用了小写a,这会导致编译错误(识别中可能误写,但根据上下文判断为逻辑错误)。
2. 内层循环的j从1开始,但乘积比较包含了A[i]*A[0],这会导致当i=0时,A[0]*A[0]被重复计算,但逻辑上仍正确,不过效率低。
3. 代码没有处理i和j的大小关系(题目要求0≤i≤j≤n-1),但学生的循环条件j从1到n-1,且没有限制j≥i,这违反了题目条件,会导致错误结果(例如,若A[i]为负数且A[j](j 由于存在逻辑错误(未满足j≥i的条件),扣3分;变量名错误扣1分。得分:3分。

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

学生正确分析了其算法的时间复杂度为O(n²)和空间复杂度为O(1),与代码一致。但算法本身不是最优的。根据题目要求“尽可能高效”,标准答案为O(n),但学生分析自身算法复杂度正确,不扣分。得分:2分。

题目总分:3+3+2=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发