文章
63
粉丝
0
获赞
0
访问
4.5k

评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的基本设计思想与标准答案相似,都是使用辅助数组来记录出现情况,但具体实现思路有差异。学生提到用散列表统计出现次数,然后进行第二次遍历删除重复节点,这需要两趟扫描,而标准答案是一趟扫描。思路基本正确但效率稍低,扣1分。
(2)得分及理由(满分2分)
得分:1分
理由:学生给出了正确的结构体定义,但存在语法错误:typedef定义中结构体类型名重复定义,且指针类型定义不规范。扣1分。
(3)得分及理由(满分8分)
得分:4分
理由:算法实现存在多处逻辑错误:
1. 第一遍遍历统计次数时,没有考虑链表长度m可能大于n的情况
2. 第二遍遍历删除逻辑错误:当a[t] > 1时应该删除后续节点而不是保留
3. 删除逻辑不完整,没有释放被删除节点的内存
4. 算法需要两趟扫描,效率低于标准答案的一趟扫描
但基本框架正确,实现了功能,给4分。
(4)得分及理由(满分2分)
得分:1分
理由:时间复杂度分析错误,学生算法需要两趟扫描,时间复杂度应为O(m)而不是O(n)。空间复杂度分析正确。扣1分。
题目总分:2+1+4+1=8分
登录后发布评论
暂无评论,来抢沙发