文章
77
粉丝
0
获赞
0
访问
6.8k

评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的基本设计思想是找出数组最大值,然后构建一个长度为max+1的辅助数组来标记出现的正整数。这个思路可以解决问题,但存在效率问题:当最大值很大而数组长度n很小时,空间浪费严重。标准答案使用原地标记法,空间复杂度为O(1)。学生的思路虽然正确但不够高效,扣1分。
(2)得分及理由(满分8分)
得分:6分
理由:代码实现基本正确,能够找到未出现的最小正整数。但存在以下问题:
1. 第一行代码"int max = min - int i;"存在语法错误,可能是识别错误,但影响了代码正确性,扣1分
2. 辅助数组B从下标0开始使用,但最小正整数应从1开始检查,代码中直接输出i,当i=0时会输出0,而0不是正整数,这是一个逻辑错误,扣1分
3. 代码中"Max = Max + 1"的用途不明确,可能是为了处理全出现的情况,但逻辑不够清晰
(3)得分及理由(满分2分)
得分:2分
理由:时间复杂度和空间复杂度分析正确。算法确实需要O(n)时间遍历数组,O(n)空间创建辅助数组。
题目总分:2+6+2=10分
登录后发布评论
暂无评论,来抢沙发