行业知识
【Leetcode每日一题】35.搜素插入位置|二分查找数组下标
2026-10-19 00:01:43
来源:互联网转载
博主index.php/tags-41973.html" >���介:大一计科生,努力学习Java中!热爱写博客~预备程序媛
所属专栏:LeetCode每日一题–进击大厂
✈往期博文回顾: 【JavaSE】保姆级教程|1万字+10张图学会类与对象–建议收藏
️♂️近期目标:成为千粉小博主。
“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”
力扣每日刷题--35
- 题目描述
- 解题思路
- 代码实现--Java
- 总结&易错
题目描述
35. 搜索插入位置
解题思路
-
题型:数组、二分查找(变式)—寻找第1个大于等于目标值的元素
-
关键:二分查找的关键点就是—两边夹(高数上又叫作夹逼准则)。left和right确定答案所在区间,通过mid(把区间划分为[left,mid]&[mid+1,right]两个区间)来缩小区间范围,直到left==right,即获得答案。
- 为什么呢?存在如下定理:A public int searchInsert(int[] nums, int target) { int left=0,right=nums.length;//因为nums.length可能为答案 while (left int mid=left+(right-left)/2;//防止溢出(但其实left和right表示数组小标没什么必要) if(targetnums[mid]){ left=mid+1;//下一次搜索区间为[mid+1,right] } else{ right=mid;//下一次搜素区间为[left,mid] } } return right; }} public int searchInsert(int[] nums, int target) { int left=0,right=nums.length;//因为nums.length可能为答案 while (left int mid=left+(right-left)/2;//防止溢出(但其实left和right表示数组小标没什么必要) if(target right=mid-1;//下一次搜索区间为[left,mid-1] } else{ left=mid;//下一次搜素区间为[mid,right] } } return right; }}
-
上一篇:网易邮箱服务器地址怎么填?