题目:35. 搜索插入位置
思路:二分查找,找不小于target的最右边的数。
C++版本:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l=0,r=nums.size()-1;
while(l<r){
int mid=(l+r)/2;
if(nums[mid]<target) l=mid+1;
else r=mid;
}
if(nums[l]<target) l++;
return l;
}
};
JAVA版本:
class Solution {
public int searchInsert(int[] nums, int target) {
int l=0,r=nums.length-1;
while(l<r){
int mid=(l+r)/2;
if(nums[mid]<target) l=mid+1;
else r=mid;
}
if(nums[l]<target) l++;
return l;
}
}