35. Search Insert Position
Given a sorted array and atarget value, return the index if the target is found. If not, return the indexwhere it would be if it were inserted in order.
You may assume noduplicates in the array.
Here are few examples.
[1,3,5,6]
, 5→ 2
[1,3,5,6]
, 2→ 1
[1,3,5,6]
, 7→ 4
[1,3,5,6]
, 0→ 0
这个和上一个类似,详见上一题。
http://blog.csdn.net/laeen/article/details/54798997
也是二分法查找。
int result;
int gold;
int searchInsert(vector<int>& nums, int target) {
gold = target;
result = 0;
twopart(nums,0,nums.size()-1);
if(nums[result] < target)result++;
return result;
}
void twopart(vector<int>& nums,int left , int right){
if(left > right)return;
int mid = (right + left) / 2 ;
result = mid;
if(nums[mid] == gold)return;
else if(nums[mid] > gold)
twopart(nums,left ,mid-1);
else
twopart(nums,mid+1,right);
}