文章
54
粉丝
21
获赞
0
访问
4.2k
(1)遍历数组,访问后续数据直至与当前元素不相同为止,设置x记录当前数据相同元素的个数,下次访问数组时数组下标+x,若出现x为0的情况,则返回当前下标数据。
(2)
int R(int A【n】){
int i=0;
while(i<n){
int x=0;int j=0;
if(i==n-1){
return A【n-1】;
}
while(A【i】==A【i+j】)
{x++;}
if(x!=0){
i=i+x;
}else
{return A【i】;}
}
}
(3)时间复杂度O(n);
评分及理由
(1)得分及理由(满分3分)
得分:1分
理由:学生给出的基本设计思想是遍历数组,通过计数相同元素来跳过重复元素,这与标准答案的"顺序遍历坐标为偶数的元素"思路不同。虽然思路可行,但不够高效且实现复杂。考虑到学生确实提出了一个可行的解决方案,给予部分分数。
(2)得分及理由(满分8分)
得分:3分
理由:代码存在多处问题:
1. 语法错误:函数定义使用了中文括号和方括号,变量j未正确使用
2. 逻辑错误:内层while循环缺少终止条件,会导致无限循环
3. 变量j在循环中未递增,无法正确比较后续元素
4. 当x=0时的处理逻辑不清晰
虽然代码框架基本正确,但实现存在严重缺陷,无法正确运行。
(3)得分及理由(满分2分)
得分:1分
理由:学生正确识别出算法的时间复杂度为O(n),这是正确的。但由于代码实现存在严重问题,实际无法达到O(n)的效率,因此扣1分。
题目总分:1+3+1=5分
登录后发布评论
暂无评论,来抢沙发