①c++完整代码 采用find函数:
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
class Solution {
public:
int search(vector<int>& nums, int target) {
vector<int>::iterator index_iterator=find(nums.begin(),nums.end(),target);
//find返回的是迭代器,如果没找到,返回的是nums.end(),即最后一个元素的下一个地址
int index=index_iterator-nums.begin();
//vevtor 是size()
if(index>=nums.size()) cout<<-1;
else cout<<index;
}
};
int main(){
vector<int> sz;int n;int t;int i;
cin>>n;
while(n--)
{
cin>>i;
sz.push_back(i);
}
cin>>t;
Solution y;
y.search(sz,t);
}
②采用二分查找
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
class Solution {
public:
int search(vector<int>& nums, int target) {
int left=0;int right=nums.size()-1;
while(left<=right)
{
int mid=(left+right)/2;
if(nums[mid]==target) return mid;
else if (nums[mid]>target) right=mid-1;
else left=mid+1;
}
return -1;
}
};
int main(){
vector<int> sz;int n;int t;int i;
cin>>n;
while(n--)
{
cin>>i;
sz.push_back(i);
}
cin>>t;
Solution y;
int result=y.search(sz,t);
cout<<result;
}