Leetcode[35] Search Insert Position
Given a sorted array and a target value, return the index if the
target is found. If not, return the index where it would be if it were
inserted in order.You may assume no duplicates in the array.
Example 1:
Input: [1,3,5,6], 5 Output: 2 Example 2:
Input: [1,3,5,6], 2 Output: 1 Example 3:
Input: [1,3,5,6], 7 Output: 4 Example 1:
Input: [1,3,5,6], 0 Output: 0
Binary Search
复杂度
O(lgN)
思路
二分法的模板:
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] == target) return mid;
// search in the right part;
if(nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
代码
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。