文章
297
粉丝
0
获赞
1
访问
182.2k

评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的基本设计思想与标准答案一致,都采用了"空间换时间"的策略,使用辅助数组记录已出现的绝对值。但学生描述中"判断是否存在于数组c中"表述不够准确,应该是检查数组对应位置的值是否为1(表示已出现),这个表述瑕疵扣1分。
(2)得分及理由(满分2分)
得分:2分
理由:单链表结点的数据类型定义完全正确,与标准答案一致,包括结构体定义和指针类型定义。
(3)得分及理由(满分8分)
得分:4分
理由:算法实现存在多处逻辑错误:
1. 指针类型定义错误:PNode *pre 应该是 PNode pre(扣1分)
2. 数组初始化缺失:没有对辅助数组c进行初始化为0的操作(扣1分)
3. 逻辑判断错误:if条件应该是检查数组对应位置是否为0(首次出现),但学生写成了是否为1(扣2分)
4. 删除操作逻辑错误:在else分支中,p指针先移动再删除,会导致逻辑混乱(扣1分)
5. 函数返回值错误:函数声明为void但返回了head(扣1分)
算法基本框架正确,但具体实现存在较多问题。
(4)得分及理由(满分2分)
得分:1分
理由:学生正确识别出时间复杂度为O(n)和空间复杂度为O(n),但应该明确n是链表长度,空间复杂度中的n应该是题目给定的参数n(数据绝对值的上限),表述不够准确扣1分。
题目总分:2+2+4+1=9分
登录后发布评论
暂无评论,来抢沙发