引言
- 今天算法得是速通的,严格把控好时间,后面要准备去面试提前批了,项目得赶紧过!
- 今天复习一个模板,然后在整理一个模板!
新作
二分模板
void binSearch(int[] nums,int l,int r){
while(l<r){
int mid = (l + r + 1) >> 1;
if(nums[mid] >= tar) l = mid;
else r = mid - 1;
二分查找——搜索插入位置
复习实现
- 这里是使用左边界的
class Solution {
public int searchInsert(int[] nums, int tar) {
int l = 0,r = nums.length - 1;
while(l < r){
int mid = (l + r) >> 1;
if(nums[mid] > tar) r = mid;
else if(nums[mid] == tar) return mid;
else l = mid + 1;
}
if(nums[l] < tar) return l + 1;
return l ;
}
}
右边界
class Solution {
public int searchInsert(int[] nums, int tar) {
int l = 0,r = nums.length - 1;
while(l < r){
int mid = (l + r + 1) >> 1;
if(nums[mid] < tar) l = mid;
else if(nums[mid] == tar) return mid;
else r = mid - 1;
}
System.out.println(r);
if(nums[r] < tar) return l + 1