文章
149
粉丝
0
获赞
0
访问
55.7k

评分及理由
(1)得分及理由(满分3分)
学生答案的基本设计思想是使用一个辅助数组A来记录正整数是否出现,思路正确且能解决问题。但存在一个小问题:当数组B中的正整数大于n时,会导致数组A越界访问。不过考虑到题目要求找出未出现的最小正整数,而最小正整数一定在1到n+1范围内,大于n的值可以忽略,因此这个越界问题在实际中可能不会影响结果,但代码存在潜在风险。由于思路整体正确,扣1分。得2分。
(2)得分及理由(满分8分)
学生代码实现了基本思想,但存在以下问题:
1. 当输入数组中的正整数大于length时,会导致数组A越界访问,这是逻辑错误。
2. 代码中未处理所有正整数都出现的情况(此时应返回n+1),但学生代码中k初始化为-1,如果所有正整数都出现,函数返回-1,这是错误的。
基于以上两个逻辑错误,每个错误扣2分,共扣4分。得4分。
(3)得分及理由(满分2分)
学生正确分析了时间复杂度和空间复杂度,均为O(n),与算法实现一致。得2分。
题目总分:2+4+2=8分
登录后发布评论
暂无评论,来抢沙发