文章

7

粉丝

0

获赞

0

访问

239

头像
2025 年 5 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年6月22日 17:48
阅读数 35

(1) 

①若要找的数为第一个数,遍历数组发现第一个元素与第二个不相等,直接输出第一个元素值

②若要找的数不为第一个数,遍历数组,若当前元素与后一个相等, 跳过下一个元素继续遍历,若当前元素与下一个不相等,则直接输出下一个元素

(2) 

int find(int a[], int n) {
    int i = 0;
    for (i = 0; i < n; i ++ ) {
        if (a[i] != a[i + 1]) break; // 要找到元素是第一个元素,直接输出该元素
        else {
            if (a[i] == a[i + 1]) i ++ ; // 当前元素与下个元素相等,跳过一个元素继续遍历
            else {
                i ++ ;  // 当前元素与后一个不相等,那么后一个元素即为要找到元素
                break;
            }
        }
    }
    return a[i];
}

(3) 时间复杂度 O(n)


评分及理由

(1)得分及理由(满分3分)

得分:2分

理由:学生的设计思想基本正确,但表述不够简洁和清晰。第一部分描述正确,但第二部分描述逻辑稍显混乱,没有明确指出遍历的步长(如标准答案中的步长为2),导致理解上不够直接。扣1分。

(2)得分及理由(满分8分)

得分:5分

理由:学生的代码实现存在逻辑错误。具体问题如下:

  • 在循环中,当a[i] !...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发