1 条题解
-
0
📝 题目大意
给定一个 的排列 和一个整数 ,求 在排列 中的位置(下标从 开始)。
💡 解题思路
- 题目分析:,数据范围极小; 是 的排列,保证 一定在 中出现一次,无需考虑不存在的情况。
- 算法推导:从 到 依次读入 ,若 则直接输出 并结束程序。由于 必定出现在排列中,循环一定会命中。
- 边界与细节:下标从 开始,不是 ;输入保证 一定存在,无需额外检查。
⏱️ 复杂度分析
- 时间复杂度:,最坏情况下需扫描整个排列。
- 空间复杂度:,仅使用常数个变量。
💻 标准代码 (C++)
#include<bits/stdc++.h> using namespace std; int main(){ int n, x; cin >> n >> x; // 读入排列长度 N 和目标值 X for (int i = 1; i <= n; i++) { // 下标从 1 开始遍历 int a; cin >> a; // 读入 P_i if (a == x) { // 找到目标值 cout << i; // 输出其位置(1-indexed) return 0; // 直接结束程序 } } return 0; }
- 1
信息
- ID
- 646
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者