用列表 index 查找目标值的首次位置,不存在时输出 -1。
OJ: noi_openjudge
题目 ID: ch0109-01
难度:入门
标签:数组查找python
日期: 2026-07-30 23:01
题意
在下标从
思路
先用 target in numbers 判断存在性,再用 index 得到零基下标并加一;不存在时输出 -1。
代码
cpp
#include <cstdio>
using namespace std;
int n,x;
int a[10005];
int main(){
scanf("%d",&n);
int i,j;
for (i=1;i<=n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&x);
for (i=1;i<=n;i++){
if( a[i] == x){
printf("%d\n",i);
return 0;
}
}
printf("-1");
return 0;
}复杂度
时间复杂度为
总结
题目下标与 Python 下标不同,输出前要完成一次加一转换。
Python代码
python
count = int(input())
numbers = list(map(int, input().split()))
target = int(input())
print(numbers.index(target) + 1 if target in numbers else -1)C++代码
cpp
#include <cstdio>
using namespace std;
int n,x;
int a[10005];
int main(){
scanf("%d",&n);
int i,j;
for (i=1;i<=n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&x);
for (i=1;i<=n;i++){
if( a[i] == x){
printf("%d\n",i);
return 0;
}
}
printf("-1");
return 0;
}