文章
202
粉丝
0
获赞
0
访问
53.1k

评分及理由
(1)得分及理由(满分4分)
学生作答的基本设计思想是:对每个A[i],通过双重循环计算A[i]与所有A[j](j从i到n-1或从0到n-1)的乘积,并记录最大值存入res[i]。这一思路虽然正确,但时间复杂度为O(n²),不是题目要求的“尽可能高效的算法”。标准答案的O(n)算法利用了从右向左遍历并维护最大值和最小值的技巧,显著更优。学生的思路属于暴力解法,虽然能得到正确结果,但效率较低,未达到题目对“高效”的要求。因此扣2分,得2分。
(2)得分及理由(满分7分)
学生给出的代码实现了上述暴力思路。但存在以下问题:
1. 内层循环的起始条件不一致(第一次识别为j=i,第二次为j=0)。根据题目要求(0≤i≤j≤n-1),j应从i开始,因此第一次识别更符合题意,第二次识别有误(j从0开始会包含i
3. 代码未处理n=0等边界情况,但题目未明确要求,暂不扣分。
基于上述逻辑错误(temp未重置),扣3分。代码整体能表达暴力解法意图,但效率低且有关键错误,得4分。
(3)得分及理由(满分2分)
学生正确分析了其算法的时间复杂度为O(n²),空间复杂度为O(1)。这与其实现代码相符,因此得满分2分。
题目总分:2+4+2=8分
登录后发布评论
暂无评论,来抢沙发