• 2.14

    • 秒了
  • 1.31

    • leftright,保证每一个元素(包括剩下的最后一个)都被检查过,从而让 leftright 正确错开。
    • return left:错开后,left 永远指向第一个大于等于 target 的位置,这就是插入点
  • 11.17

    • 蚌埠住了,以为是快速排序,结果就是二分查找logN
    • 循环条件应该是leftright(不同于快排or快选)因为相等时正好进入循环弹出位置,其他没什么问题
class Solution {
    public int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length-1;
 
        while(left<=right){
            if(nums[(left+right)/2]>target){
                right = (left+right)/2-1;
            }else if(nums[(left+right)/2]==target){
                return (left+right)/2;
            }else{
                left = (left+right)/2+1;
            }
        }
        return left;
    }
}