文章
31
粉丝
50
获赞
1
访问
1.5k

评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:学生的算法思路是使用辅助数组统计每个元素的出现次数,然后查找出现次数超过n/2的元素。这种方法虽然正确,但空间复杂度为O(n),而题目要求"尽可能高效的算法",标准答案使用了Boyer-Moore投票算法,空间复杂度为O(1)。学生的思路虽然正确,但不是最优解,因此扣2分。
(2)得分及理由(满分7分)
得分:4分
理由:代码实现存在以下问题:
1. 辅助数组C未初始化,所有元素初始值不确定,应该用memset或循环初始化为0(逻辑错误,扣1分)
2. break语句在return语句之前,导致return i永远不会执行(逻辑错误,扣1分)
3. 内存分配后没有释放,存在内存泄漏(逻辑错误,扣1分)
4. 算法功能基本正确,能够实现主元素的查找
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了时间复杂度O(n)和空间复杂度O(n),与实现的算法一致。
题目总分:2+4+2=8分
登录后发布评论
暂无评论,来抢沙发