文章
196
粉丝
0
获赞
1
访问
26.2k
评分及理由
(1)得分及理由(满分5分)
得分:3分
理由:学生的设计思想是"统计链表长度,得到长度n,再遍历找到第n-k+1个结点"。这种思路是正确的,能够解决问题,但需要遍历链表两次(一次统计长度,一次定位结点),而题目要求"尽可能高效的算法"并明确说明"若采用两遍或多遍扫描才能得到正确结果的,最高分10分"。与标准答案的一遍扫描相比,效率较低,因此扣2分。
(2)得分及理由(满分5分)
得分:4分
理由:学生的实现步骤描述清晰,包括统计链表长度、检查k的合法性、定位倒数第k个结点三个主要步骤,逻辑完整正确。但由于采用的是两遍扫描的方法,效率不如标准答案的一遍扫描,因此扣1分。
(3)得分及理由(满分5分)
得分:3分
理由:代码实现基本正确,能够完成功能,但有以下几个问题:
1. 代码开头有"int solvef"这样的冗余代码,可能是识别错误
2. 在统计长度时,使用"list = list->link"移动了原始头指针,虽然后面有"list = p"恢复,但这种方法不够优雅
3. 在定位结点时,使用"n--"的方式递减计数,逻辑正确但可读性稍差
4. 主要问题是采用了两遍扫描的方法,效率较低
由于代码功能正确但效率不高,扣2分。
题目总分:3+4+3=10分
登录后发布评论
暂无评论,来抢沙发