文章
27
粉丝
0
获赞
0
访问
1.5k

评分及理由
(1)得分及理由(满分4分)
得分:0分
理由:学生的算法设计思想是使用两层循环暴力匹配,这种方法虽然能找到公共结点,但不符合题目要求的"时间上尽可能高效"的标准。标准答案采用的是先计算链表长度差然后同步遍历的方法,时间复杂度为O(m+n),而学生的算法时间复杂度为O(m×n),效率较低。此外,学生的算法只能找到第一个数据值相同的结点,而题目要求的是找到共同后缀的起始位置(即第一个地址相同的结点),这是概念性错误。
(2)得分及理由(满分8分)
得分:2分
理由:代码存在多处问题:
1. 函数返回类型声明为int,但实际返回的是LNode*类型,类型不匹配
2. 内层循环中q指针在第一次内循环后就会指向链表末尾,后续外层循环中q不会重置,逻辑错误
3. 算法比较的是结点数据值而非结点地址,无法正确找到共同后缀起始位置
4. 缺少链表长度计算和指针同步移动的关键逻辑
给予2分是因为代码框架基本正确,能够遍历两个链表,但核心逻辑存在严重缺陷。
(3)得分及理由(满分1分)
得分:1分
理由:学生正确分析了自己算法的时间复杂度为O(n²),与实现的算法一致,符合评分标准。
题目总分:0+2+1=3分
登录后发布评论
暂无评论,来抢沙发