class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int s=0;
for(int x=0;x<nums.size();x++)
{
if (target==nums[x])
{
return x;
}
else if(target>nums[x])
{
s=x+1;
}
}
return s;
}
};
又是一道很快解决的题目,但我并没有真正完成它的要求,没能达到0(log n)
做题过程中对于算法的应用还是太少了;
?于是参考了答案,打了另一个解法;
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l=0;int r=nums.size()-1;int mid=0;
while(r>=l)
{
mid=l+(r-l)/2;
if(target>nums[mid])
{
l=mid+1;
}
else
{
r=mid-1;
}
}
return l;
}
};
答案利用使用了二分查找法,这个算法比较简单,但我还是没想到。
一天熟悉两个算法还是不戳的!
加油!
?
|