LeetCode第35题搜索插入位置

继续打卡算法题,今天学习的是LeetCode的第35题搜索插入位置,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

这个题目目的是为了搜索有序数组中的数,我们提高效率需要使用到二分法查找。

什么时候搜索结束呢?

比如在下面数组中搜索5,第一次中间数是4,比5小,那么下次需要往右边找

其实只会有两种情况,第一,目标数存在数组中,直接返回

第二,目标数不在数组中,此时我们需要找到第一个大于target的数

编码解决

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {

        int start = 0;
        int end = nums.length-1;
        int mid = 0;
        int result = nums.length; //默认最后插入位置
        while(start <= end) {

            mid = (end - start) / 2 + start;
            
            //刚好相等
            if(nums[mid] == target) {
                return mid;
            }
            //在右边
            if(nums[mid] < target) { 
                start = mid+1;
            } else { //在左边 大于target了,需要记录下来
                 end = mid-1;
                 result = mid; //最右边的插入位置
            }
        }
       return result;

    }
}

总结

二分法搜索法写法有两个点需要注意,一个是while条件,一个是更新left和right值。

while条件如果是start<=end, 更新条件需要使用start=mid+1或者end=mid-1

相关推荐
何陋轩11 分钟前
Spring AI实战指南:在Java项目中集成大语言模型
人工智能·后端·机器学习
灵智实验室16 分钟前
PX4状态估计技术EKF2详解(二):EKF2 误差状态动力学与协方差传播
算法·无人机·px 4
米粒133 分钟前
力扣算法刷题 Day 64 Floyd算法 & A* 算法 & 总结篇
算法·leetcode·职场和发展
XX風44 分钟前
OpenGL中Face culling 面剔除的具体实现
算法·图形渲染
用户8356290780511 小时前
Python 操作 PowerPoint 表格的创建与格式化
后端·python
IT猿手1 小时前
光伏模型参数估计:基于山羊优化算法(GOA )的光伏模型参数辨识问题求解研究,免费提供完整MATLAB代码链接
开发语言·算法·matlab·群智能优化算法·智能优化算法·光伏模型参数估计·光伏模型参数辨识
forestqq1 小时前
基于openeuler2403sp3的容器,打包django运行环境镜像
后端·python·django
站着1 小时前
TRAE SOLO 移动端正式上线:手机也是随身工位,随时随地进入「Vibe Working」
后端
麻雀飞吧1 小时前
期货量化策略讲解:天勤量化下的跨期价差均值回归策略实战
python·算法·均值算法·回归
盖世英雄酱581361 小时前
6000条数据执行时间9s??
数据库·后端