文章
118
粉丝
0
获赞
0
访问
47.0k

评分及理由
(1)得分及理由(满分3分)
学生答案的基本设计思想是使用辅助数组标记出现的正整数,然后遍历辅助数组找到第一个未标记的位置。这种方法思路正确,能够解决问题,与标准答案的原地标记法不同但同样有效。因此得3分。
(2)得分及理由(满分8分)
学生代码实现了设计思想:
- 正确创建了大小为n+1的辅助数组并初始化为0(1分)
- 正确遍历原数组,将正整数在辅助数组中标记(2分)
- 正确从1开始遍历辅助数组找到第一个未标记的位置(2分)
- 考虑了所有正整数都出现时返回n+1的情况(1分)
- 代码逻辑完整,注释清晰(2分)
但存在一个小问题:辅助数组大小应为n+1,但代码中实际创建的是n+1大小的数组,这是正确的,因为需要标记1到n的所有正整数。整体实现正确,得8分。
(3)得分及理由(满分2分)
学生正确分析了时间复杂度O(n)和空间复杂度O(n)。虽然标准答案的空间复杂度是O(1),但学生的分析符合其算法实现,因此得2分。
题目总分:3+8+2=13分
登录后发布评论
暂无评论,来抢沙发