小工具知识网

当前位置: 首页 > 行业知识 > 【Leetcode每日一题】35.搜素插入位置|二分查找数组下标

行业知识

【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; }}

上一篇:网易邮箱服务器地址怎么填?

下一篇:Win10系统备份,如何安全备份你的操作系统?