关注
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;
}
请问一下第一题的二分是这种思路吗
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
2025-11-26 14:42
郑州轻工业大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 双非本秋招总结6037
- 2... 打工的这一年3635
- 3... 你会和mentor进行deeptalk吗?2959
- 4... 学院本 末 211 硕勇闯 java 后端实习美团 oc 逆袭指南2508
- 5... 双非本2025秋招总结:65w+SSP三选一,最终还是“有鹅选鹅”|附面试心路历程2434
- 6... 金丹后期牛友!我们新年再见2395
- 7... 牛客运营们,我保证这是我最后一次消费烤肠了!2395
- 8... 写给后辈们的一封信, 希望能帮助到你找第一份工作时少踩坑2187
- 9... 没人带+同事冷漠,真的会内耗2157
- 10... 希望新的一年,我依然是走向幸福的那个人2156
正在热议
更多
# 对2025年忏悔 #
4949次浏览 109人参与
# 你觉得专业和学校哪个对薪资影响最大 #
87641次浏览 587人参与
# 实习没人带,苟住还是跑路? #
13468次浏览 273人参与
# 巨人网络求职进展汇总 #
183923次浏览 1223人参与
# 元旦假期你打算怎么过 #
8637次浏览 175人参与
# 春招前还要继续实习吗? #
5569次浏览 66人参与
# 面试官问过你最刁钻的问题是什么? #
10634次浏览 102人参与
# 腾讯云智研发工作体验 #
34541次浏览 164人参与
# 大家实习都在做什么? #
8969次浏览 96人参与
# 如何缓解入职前的焦虑 #
247237次浏览 1439人参与
# 一人说一家双休的公司 #
7587次浏览 99人参与
# 我们是不是被“优绩主义”绑架了? #
9438次浏览 288人参与
# 新年的第一句祝福 #
51128次浏览 377人参与
# 腾讯工作体验 #
549098次浏览 3664人参与
# 领导秒批的请假话术 #
30612次浏览 121人参与
# 求职遇到的搞笑事件 #
154308次浏览 889人参与
# 妈妈治愈了你哪些脆皮时刻 #
38952次浏览 338人参与
# 我来点评面试官 #
38119次浏览 165人参与
# 机械人你觉得今年行情怎么样? #
6361次浏览 88人参与
# 设计人的面试记录 #
177824次浏览 1576人参与
汤臣倍健公司氛围 420人发布