const biPart=(target,arr)=>{     let low=0,high=arr.length-1;     let count=0;     //找不到的情况下: 最后low与high相等时low总比high大1     //为什么这里不能用low<high? 因为low<high的话无法判断最后low/high的位置     //比如 1 2 4 6 6 7 找5最后low=3是一个比5大的数,找3最后low=2是一个比3小的数     //但是如果low<=high, 最后的low都是比要找的那个数大的,相当于low表示arr中比target大的数的个数!!!     while (low<=high){         let mid=Math.floor((low+high)/2);         if (arr[mid]>target){             high=mid-1;         }else if (arr[mid]<target){             low=mid+1;         }else {             //找得到的情况: 这里存在重复数字,重复时最后low=high就没有上面的考虑             low=mid; //最后用low返回             //mid>0的情况下,找到第一个target的位置             while (mid&&arr[--mid]===target){                 low--;             }             break;         }     }     //low代表arr中小于target的数字的个数     //arr.length-low则表示arr中大于等于target数字的个数     return arr.length-low; } 请问一下第一题的二分是这种思路吗