文章
246
粉丝
0
获赞
0
访问
38.2k

评分及理由
(1)得分及理由(满分4分)
得2分。学生的基本设计思想是依次计算每个元素与它之后元素的乘积最大值,这个思路是可行的,但效率较低。标准答案采用了从右向左遍历并维护最大值和最小值的方法,时间复杂度为O(n),而学生的方法时间复杂度为O(n²),虽然正确但不够高效。因此扣2分。
(2)得分及理由(满分7分)
得5分。学生的代码实现了基本功能,但存在以下问题:
1. 在cal函数中,初始max设为0,如果所有乘积都是负数,则无法正确记录最大值(例如数组全为负数时)。应初始化为一个极小值(如INT_MIN)。扣1分。
2. 在cal函数中,循环从t=i开始,这符合题目要求(i≤j),但标准答案更高效。由于思路正确但效率低,不额外扣分。
3. 代码整体逻辑正确,但未达到时间和空间上尽可能高效的要求,扣1分。
(3)得分及理由(满分2分)
得2分。学生正确分析了时间复杂度和空间复杂度,分别为O(n²)和O(1),与代码实现一致。
题目总分:2+5+2=9分
登录后发布评论
暂无评论,来抢沙发