OneCoder Avatar
OneCodercoderli.com · 937 篇博文
三级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++三级练习 luogu-B2093 查找特定的值

📅 2025-04-07·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#一维数组

GESP三级练习,一维数组练习(C++三级大纲中5号知识点,一维数组),难度★☆☆☆☆。

luogu-B2093 查找特定的值

题目要求

题目描述

在一个序列(下标从 00 开始)中查找一个给定的值,输出第一次出现的位置。

输入格式

第一行包含一个正整数 nn,表示序列中元素个数。1n100001 \le n \le 10000

第二行包含 nn 个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过 1000010000

第三行包含一个整数 xx,为需要查找的特定值。xx 的绝对值不超过 1000010000

输出格式

若序列中存在 xx,输出 xx 第一次出现的下标; 否则输出 -1

输入输出样例 #1

输入 #1

BASH
5
2 3 6 7 3
3

输出 #1

BASH
1

题目分析

解题思路

  1. 首先需要输入数组长度 nn,然后输入 nn 个整数存入数组中
  2. 再输入需要查找的特定值 xx
  3. 从数组第一个元素开始向后遍历,查找是否存在值为 xx 的元素
  4. 如果找到值为 xx 的元素,则输出其下标位置并结束程序
  5. 如果遍历完整个数组都没有找到值为 xx 的元素,则输出 1-1

复杂度分析:

  • 输入n个数的时间复杂度为 O(n)O(n)
  • 遍历数组查找特定值的时间复杂度为 O(n)O(n)
  • 因此总时间复杂度为 O(n)O(n)
  • 空间复杂度为 O(n)O(n),需要存储n个整数的数组

示例代码

CPP
#include <iostream>
using namespace std;
int a[10000];
int main() {
    // 定义数组长度变量
    int n;
    // 定义要查找的数
    int x;
    // 输入数组长度
    cin >> n;
    // 循环输入n个数到数组
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    // 输入要查找的数
    cin >> x;
    // 遍历数组查找x
    for (int i = 0; i < n; i++) {
        // 找到x则输出下标并结束程序
        if (x == a[i]) {
            cout << i;
            return 0;
        }
    }
    // 未找到则输出-1
    cout << "-1";
    return 0;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

💬 读者留言与交流

0 条讨论
✨ 支持 Markdown 语法格式
还没有留言,快来成为第一个讨论者吧!