文章
190
粉丝
0
获赞
0
访问
27.9k

评分及理由
(1)得分及理由(满分4分)
学生给出的基本设计思想描述较为模糊,但大致方向正确:对于每个元素 A[i],根据其正负性,在后续元素(j≥i)中寻找最大值或最小值进行乘积计算。然而,表述不够清晰严谨,例如“设计两个指针,带头指针指向数组第一个元素,然后另一个指针遍历出数组中最大的数”未能准确说明如何高效地维护最大值和最小值。标准答案明确要求从右向左遍历并动态维护极值,而学生描述为从左向右且每次重新遍历,这会导致 O(n²) 的时间复杂度,但学生未意识到这一点。考虑到思路核心正确但不够完整和准确,扣1分。
得分:3分
(2)得分及理由(满分7分)
学生提供的代码片段存在严重问题:
Void 应为 void;int B[i,j]=A[i,j] 不是合法的C/C++语法;hA→B[i](i++)、p->B[i] 等指针操作无定义且逻辑混乱。尽管可能存在部分识别错误(如符号误写),但整体代码结构完全偏离正确算法,无法给予分数。
得分:0分
(3)得分及理由(满分2分)
学生给出的时间复杂度 O(n) 和空间复杂度 O(1) 与标准答案一致,但这是基于其描述的思路(每次遍历后续元素找极值)的错误评估,实际其描述的方法时间复杂度应为 O(n²)。然而,在复杂度陈述部分,学生直接写出了正确结果,可能是在没有正确实现的情况下照搬了结论。由于复杂度结论本身正确,且题目只要求说明复杂度,不深究推导过程,因此给予满分。
得分:2分
题目总分:3+0+2=5分
登录后发布评论
暂无评论,来抢沙发