news 2026/4/28 5:06:11

力扣hot100:搜索插入位置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣hot100:搜索插入位置

题目描述:

题目分析:

本题是一个二分查找,核心思路是通过计算中心点和目标值的大小关系,以此在一个while循环里不断更新左右端点,知道左端点大于右端点。

代码:

class Solution { public int searchInsert(int[] nums, int target) { int n=nums.length; int right=n-1; int left=0; while(left<=right){ int mid=(right-left)/2+left; if(target>nums[mid]){ left=mid+1; }else{ right=mid-1; } } return left; } }

代码要点分析:

1.中心点的计算为mid=(right-left)/2+left,这样做是为了防止整数溢出。

2.left<=right,若目标值存在于数组中,最后一个可能的leftright是相同的,left < right会错过一些情况。具体来说,在left == right时,依然需要检查这个位置。

3.不必判断target==nums[mid]的情况,在target==nums[mid]时直接把mid更新为right-1,如果后续范围数组里还有target,那么二分查找依旧能查找到范围里的target;如果这已经是最左边的target,那么随后循环里就会出现target>nums[mid]的情况,此时left就会不断右移,知道nums[left]=target。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 1:39:44

【JavaWeb】ServletConfig为Servlet提供配置参数

ServletConfig的使用 ServletConfig是什么&#xff1f; 为Servlet提供初始配置参数的一种对象&#xff0c;每个Servlet都有自己独立唯一的ServletConfig对象容器会为每个Servlet实例化一个ServletConfig对象&#xff0c;并通过Servlet生命周期的init方法传入给Servlet作为属性 …

作者头像 李华
网站建设 2026/4/25 9:50:11

Flutter 测试驱动开发的基本流程

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。### Flutter 测试驱动开发&#xff08;TDD&#xff09;实践指南 测试驱动开发&#xff08;TDD&#xff09;是一种软件开发方法&#xff0c;强调在编写功能代码之前先编写测试用例。通过这种方式…

作者头像 李华
网站建设 2026/4/25 2:52:03

[UUCTF 2022 新生赛]ezpop

1.打开先看代码<?php //flag in flag.php error_reporting(0); class UUCTF{public $name;public $key;public $basedata;public $ob;function __construct($str){$this->name$str;}function __wakeup(){if($this->key"UUCTF"){$this->obunserialize(ba…

作者头像 李华
网站建设 2026/4/27 22:35:57

盛水最多的容器(滑动窗口 双指针)

这道题当然可以暴力求解&#xff0c;O(N^2),但是有时候并不会通过&#xff0c;因此要想一个时间复杂度为O&#xff08;N&#xff09;的方法。如果说用滑动窗口肯定会有人会有疑问&#xff0c;这怎么用&#xff1f;下面直接说解法&#xff1a;首先left与right分别指向数组的两边…

作者头像 李华
网站建设 2026/4/23 21:55:37

深度探究Span:.NET内存布局与零拷贝原理及实践

深度探究Span&#xff1a;.NET内存布局与零拷贝原理及实践 在.NET开发中&#xff0c;高效的内存管理至关重要&#xff0c;尤其在处理高性能、低延迟的应用场景时。Span<T> 类型应运而生&#xff0c;它为开发者提供了一种灵活且高效的内存操作方式&#xff0c;能够显著提升…

作者头像 李华
网站建设 2026/4/24 17:18:42

helm 部署 elasticsearch 栈

说明:本文使用的 chart 仓库名字为 elastic/cloud-on-k8s 地址为 elastic/cloud-on-k8s。 1、添加 repo 源 helm repo add elastic https://helm.elastic.co helm repo update2、安装 eck-operator ⚠️说明:ECK Operator(Elastic Cloud on Kubernetes)本身安装的东西其…

作者头像 李华