给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。
否则,返回target插入数组后它应该在的位置。
假设数组中没有重复的数。以下是简单的示例:
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
提示:输入一个整数n,以及其对应的数组A[n],最后输入target
searchInsert(int A[], int n, int target)
样例1
输入:
3
1 3 5
2
输出:
1
#include <iostream>
#include <vector>
using namespace std;
int searchInsert(vector<int> ivec, int n, int target)
{
for(vector<int>::size_type i=0; i!=ivec.size();++i)
{
if(target ==ivec[i])
return i;
else if(target > ivec[i-1] && target < ivec[i])
return i;
else if(target < ivec[0])
return 0;
else if (target > ivec[ivec.size()-1])
return ivec.size();
}
}
int main()
{
int m,n,target,location;
vector <int> iv;
cin >>n;
while(n>0)
{
cin >>m;
iv.push_back(m);
n--;
}
cin >> target;
location = searchInsert(iv,n,target);
cout << location <<endl;
return 0;
}