基础题之一,是混迹于各种难题的基础,有时会在小公司的大题见到,但更多的是见于选择题。。。
题意:在一个有序数列中,要插入数target,找出插入的位置。
楼主在这里更新了《二分查找综述》第一题的解法,比较类似,当然是今天临时写的。
知道了这题就完成了leetcode 4的第二重二分的写法了吧,楼主懒。。。
1 class Solution { 2 public: 3 int searchInsert(vector<int>& nums, int target) { 4 int l = 0, r = nums.size() - 1; 5 while(l <= r){ 6 int mid = l + (r - l)/2; 7 if(nums[mid] < target){ 8 l = mid + 1; 9 } 10 else r = mid - 1; 11 } 12 return l; 13 } 14 };
这里给出楼主当时A题的解法,请不要鄙视楼主。。。
1 class Solution { 2 public: 3 int searchInsert(vector<int>& nums, int target){ 4 vector<int>::iterator it = lower_bound(nums.begin(), nums.end(), target); 5 return it - nums.begin(); 6 } 7 };
是的,又是库函数^_^