1、利用循环暴力搜索:
解题方案:
var searchInsert = function(nums, target) {
for(let i=0;i<nums.length;i++){
if(nums[i]>=[target]){
return i
}
}
return nums.length
};
2、利用二分查找算法:
解题方案:
var searchInsert = function(nums, target) {
let left=0,right=nums.length-1
while(left<=right){
let mid = Math.ceil((right+left)/2);
if(target>nums[mid]){
left=mid+1;
}else if(target<nums[mid]){
right=mid-1;
}else if(target==nums[mid]){
return mid;
}
}
return left
};
二分查找算法的大体框架:
var binarySearch(int[] nums, int target) {
let left = 0, right = ...;
while(...) {
let mid = Math.ceil((right+left)/2);
if (nums[mid] == target) {
...
} else if (nums[mid] < target) {
left = ...
} else if (nums[mid] > target) {
right = ...
}
}
return ...;
}