文章
4
粉丝
0
获赞
0
访问
421
1.二位遍历,若出现两位数值不同,较小位为仅出现一次元素
2.
int num[N];
int ans = -1;
for(int i = 0 ;i < N ; i+=2){
if(num[i] != num[i+1])
ans = num[i];
}
3. 时间复杂度 O(n)
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生的设计思想基本正确,提到了遍历偶数位的元素并与后一个元素比较,但表述不够准确(如“较小位”的表述不严谨)。因此扣1分。
(2)得分及理由(满分8分)
得分:6分
理由:代码实现基本正确,但存在以下问题:
1. 未处理边界情况(如最后一个元素为目标元素时,代码可能越界访问`num[i+1]`)。
2. 变量`ans`未初始化时直接使用,逻辑不严谨。
3. 缺少函数封装和注释。
因此扣2分。
(3)得分及理由(满分2分)
得分:2分
理由:时间复杂度分析正确,与标准答案一致,得满分。
题目总分:2+6+2=10分
登录后发布评论
暂无评论,来抢沙发