题目描述
给定一个n个元素有序的(升序)整型数组 nums
和一个目标值 target
,写一个函数搜索 nums
中的 target
,如果目标值存在返回下标,否则返回 -1
。
输入
输入第一行,整数n表示数组中元素的个数输入第二行,依次输入数组中的每个元素 num[i]
(i
从0开始) 输入第三行,查找的目标 target
输出
输出目标值在数字中的下标
样例
输入样例1
6
-1 0 3 5 9 12
2
输出样例1
-1
输入样例2
6
-1 0 3 5 9 12
9
输出样例2
4
提示
你可以假设nums
数组中的所有元素是不重复的。
n 将 [1,10000] 之间。 nums
的每个元素都将 [-9999,9999] 之间。
框架+定义num
#include<bits/stdc++.h>
using namespace std;
int num[100001];
int main(){
return 0;
}
定义完后,直接写代码!
写main里,
定义
n
n
n和
t
a
r
g
e
t
target
target,输入
n
n
n,接着for,for用来输入
n
n
n个元素。
int n, target;
cin >> n;
for(int i = 0; i < n; i++){
cin >> num[i];
}
输入
t
a
r
g
e
t
target
target
for里判断,如果
n
u
m
num
num的第
i
i
i项等于
t
a
r
g
e
t
target
target,说明要返回下标,
i
i
i就是下标,so…
就可以直接输出下标啦!
(别忘了终止程序)
如果不等于,继续下去。
cin >> target;
for(int i = 0; i < n; i++){
if(num[i]==target){
cout << i;
return 0;
}else{
continue;
}
}
如果直至循环结束还没有停止,怎么办?
输出-1
呗
那最终,我们也不能忘掉好习惯,随手写一个return 0;
cout << "-1";
return 0;
code:
#include<bits/stdc++.h>
using namespace std;
int num[100001];
int main(){
int n, target;
cin >> n;
for(int i = 0; i < n; i++){
cin >> num[i];
}
cin >> target;
for(int i = 0; i < n; i++){
if(num[i]==target){
cout << i;
return 0;
}else{
continue;
}
}
cout << "-1";
return 0;
}