文章
92
粉丝
0
获赞
0
访问
8.4k

评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的设计思想与标准答案一致,都是使用辅助数组记录已出现的绝对值,通过一趟扫描链表实现删除重复绝对值结点的功能。思路正确完整,得满分。
(2)得分及理由(满分2分)
得分:2分
理由:单链表结点的数据类型定义正确,包含了data和link两个成员,结构体命名合理。虽然第一次识别中出现了"lnk"的拼写,但第二次识别修正为"link",且根据上下文判断为识别误写,不扣分。
(3)得分及理由(满分8分)
得分:7分
理由:算法实现基本正确,但存在以下问题:
1. 数组A的大小应为n+1而不是n,因为绝对值范围是0到n(含n),需要n+1个位置。这是一个逻辑错误,扣1分。
2. 算法中使用了变量n但未作为参数传入,在C语言中不能直接使用n定义数组大小,但考虑到可能是题目上下文已知,且核心逻辑正确,此处不额外扣分。
3. 其他部分逻辑正确:包括链表遍历、绝对值计算、重复判断、结点删除等操作都正确实现。
(4)得分及理由(满分2分)
得分:1分
理由:空间复杂度分析正确为O(n),得1分。但时间复杂度分析为O(max{m,n})不够准确,应该是O(m),因为主要时间消耗在遍历链表上,数组初始化可以忽略或视为O(n)但通常m≥n,所以准确说是O(m)。此处扣1分。
题目总分:3+2+7+1=13分
登录后发布评论
暂无评论,来抢沙发