文章
782
粉丝
21
获赞
1
访问
91.9k

评分及理由
(1)得分及理由(满分4分)
学生作答的基本设计思想是:先找出整个数组的最大值 Max 和最小值 Min,然后遍历数组,若 A[i] 大于 0 则乘以 Max,否则乘以 Min。然而,根据题意,对于每个 A[i],需要计算 A[i] 与 A[j](i ≤ j ≤ n-1)乘积的最大值,即只考虑从当前位置到数组末尾的子数组。学生的思路错误地使用了整个数组的极值,而不是从 i 到 n-1 子数组的极值,这会导致结果错误(例如题目示例 A = {1, 4, -9, 6},按学生算法会得到 res = {6, 24, -9, 36},与正确结果 {6, 24, 81, 36} 不符)。因此,设计思想存在根本性逻辑错误。扣 4 分。
得分:0 分
(2)得分及理由(满分7分)
学生给出的代码实现了其设计思想,但因其设计思想错误,代码逻辑也错误。代码中先通过一次遍历找出全局最大值和最小值,然后第二次遍历根据 A[i] 的正负分别乘以全局最大值或最小值。这不符合题目要求的“A[i] 与 A[j](i ≤ j ≤ n-1)乘积的最大值”。因此,代码逻辑错误。扣 7 分。
得分:0 分
(3)得分及理由(满分2分)
学生分析的时间复杂度为 O(n),空间复杂度为 O(1),这与其给出的算法实现是一致的。尽管算法逻辑错误,但复杂度分析本身是基于其代码的,且分析正确。因此,不扣分。
得分:2 分
题目总分:0+0+2=2分
登录后发布评论
暂无评论,来抢沙发