LeetCode 35.搜索插入位置
我的思路
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()){
return 0;
}
int i;
for(i = 0; i < nums.size(); ++i){
if(nums[i] < target) continue;
if(nums[i] == target) return i;
if(nums[i] > target) return i;
}
return nums.size();
}
改进
int searchInsert(vector<int>& nums, int target) {
for(int i = 0; i < nums.size(); ++i){
if(nums[i] >= target) return i;
}
return nums.size();
}
二分查找
int searchInsert(vector<int>& nums, int target) {
int low = 0, high = nums.size(), mid;
while(low < high){
mid = (low + high)/2;
if(nums[mid] == target)
return mid;
else if(nums[mid] > target)
high = mid;
else
low = mid + 1;
}
return low;
}