文章
74
粉丝
0
获赞
5
访问
9.2k

评分及理由
(1)得分及理由(满分3分)
学生答案的基本设计思想是:创建一个大小为n的辅助数组并初始化为0,遍历原数组,将出现的正整数在辅助数组对应位置标记,最后遍历辅助数组找到第一个未被标记的位置。这种思路虽然与标准答案(原地哈希)不同,但同样是正确的解法,能够解决问题。根据评分规则第3条"思路正确不扣分",因此得3分。
(2)得分及理由(满分8分)
学生代码存在以下问题:
1. 代码中数组A的大小为n,但实际需要n+1的大小才能覆盖1到n的所有正整数(扣2分)
2. 第二个循环中返回的是A[i]而不是i,逻辑错误(扣2分)
3. 缺少对n+1情况的处理,当数组包含1到n的所有正整数时,应该返回n+1(扣2分)
4. 代码不完整,缺少函数结束的返回值(扣1分)
代码整体框架正确,核心逻辑清晰,但存在上述逻辑错误。根据评分规则第2条"逻辑错误扣分",共扣7分,得1分。
(3)得分及理由(满分2分)
学生正确分析了时间复杂度O(n)和空间复杂度O(n),与算法实际复杂度一致。得2分。
题目总分:3+1+2=6分
登录后发布评论
暂无评论,来抢沙发