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; } };
答案利用使用了二分查找法,这个算法比较简单,但我还是没想到。
一天熟悉两个算法还是不戳的!
加油!