搜索插入位置
题目:输入一个排序的整数数组nums和一个目标t,如果数组中包含t,则返回t的下标,如果数组nums中不包含t,则返回将t按顺序插入数组中的下标。
思路:使用二分查找的思想。
public int searchInsert(int[] nums, int target){ //O(log n)
int left = 0, right = nums.length - 1;
while (left <= right){
int mid = (left + right) / 2;
if(nums[mid] >= target){
if (nums[mid] == 0 || nums[mid - 1] < target){
return mid;
}
right = mid - 1;
}else {
left = mid + 1;
}
}
return nums.length;
}
public static int searchInsert(int[ ] nums,int target){ //O(n)
int i;
for (i = 0; i < nums.length; i++){
if (nums[i] >= target) return i;
}
return i;
}