代码随想录——搜索插入位置(Leetcode35)

题目链接
在这里插入图片描述

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

采用二分查找可以顺利找到target存在于数组中的位置;
target不存在与数组中时需要对左右两侧分别考虑,由于数组下标从0开始且为有序数组,所以当target < nums[left]index = left,当target > nums[right]index = right + 1

官方题解

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

思路:即不断用二分法逼近查找第一个大于等于target 的下标 。下文给出的代码是笔者习惯的二分写法,ans初值设置为数组长度可以省略边界条件的判断,因为存在一种情况是target 大于数组中的所有数,此时需要插入到数组长度的位置。
(答案的写法确实简洁欸!!!!我觉得我的思路和答案是一样的呜!!!!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572390.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32收发HEX数据包

在实际应用中&#xff0c;STM32的串口通信都是以数据包格式进行收发&#xff0c;这个数据包一般都包含包头和包尾&#xff0c;表示一个数据包。源代码在文末给出 数据包格式&#xff1a; 固定长度&#xff0c;含包头包尾 可变包长&#xff0c;含包头包尾 问题1&#xff1a;当…

递推入门||数字三角形

题目&#xff1a; 如果只能往左下或右下走&#xff0c;找到下面三角形的最大值 代码&#xff1a; #include <bits/stdc.h> using namespace std; int a[105][105];int main() {int n,i,j;cin>>n;for(i1;i<n;i){for(j1;j<i;j){cin>>a[i][j];}}for(in-1…

服务运营 | 印第安纳大学翟成成:改变生活的水井选址

编者按&#xff1a; 作者于2023年4月在“Production and Operations Management”上发表的“Improving drinking water access and equity in rural Sub-Saharan Africa”探讨了欠发达地区水资源供应中的可达性和公平性问题。作者于2020年1月去往非洲埃塞俄比亚提格雷地区进行…

上位机图像处理和嵌入式模块部署(qmacvisual图像拼接)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 qmacvisual本身提供了图像拼接的功能。功能本身比较有意思的。大家如果拍过毕业照&#xff0c;特别是那种几百人、上千人的合照&#xff0c;应该就…

Maven的pom.xml中resources标签的用法

spring-boot-starter-parent-2.4.1.pom文件中resources标签内容如下&#xff1a; <build><resources><resource><directory>${basedir}/src/main/resources</directory><filtering>true</filtering><includes><include>…

数字化运维:引领IT运维管理的新潮流

目录 前言 数字化运维与传统运维 数字化运维是什么 数字化运维的关键技术 书本推荐 主要内容 读者对象 总结 前言 数字化转型已经成为大势所趋&#xff0c;各行各业正朝着数字化方向转型&#xff0c;利用数字化转型方法论和前沿科学技术实现降本、提质、增效&#xf…

【前端学习——js篇】6.事件模型

具体见&#xff1a;https://github.com/febobo/web-interview 6.事件模型 ①事件与事件流 事件(Events) 事件是指页面中发生的交互行为&#xff0c;比如用户点击按钮、键盘输入、鼠标移动等。在js中&#xff0c;可以通过事件来触发相应的操作&#xff0c;例如执行函数、改变…

37、Linux中Xsync数据同步备份工具

37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注&#xff1a;本文全程在普通用户下操作&#xff0c;…

Null-text Inversion for Editing Real Images using Guided Diffusion Models

Null-text Inversion for Editing Real Images using Guided Diffusion Models (Paper reading) Ron Mokady, Google Research, CVPR23, Paper, Code 1. 前言 在本文中&#xff0c;我们介绍了一种精确的反转技术&#xff0c;从而有助于直观地对图像进行基于文本的修改。我们提…

鸿蒙开发之ArkUI组件常用组件文本输入

TextInput、TextArea是输入框组件&#xff0c;通常用于响应用户的输入操作&#xff0c;比如评论区的输入、聊天框的输入、表格的输入等&#xff0c;也可以结合其它组件构建功能页面&#xff0c;例如登录注册页面。 TextInput为单行输入框、TextArea为多行输入框 TextArea 多行…

Oracle数据库管理:从基础到高级应用【文末送书-45】

文章目录 入门篇&#xff1a;初识Oracle进阶篇&#xff1a;深入学习Oracle精通篇&#xff1a;掌握Oracle高级技术Oracle从入门到精通&#xff08;第5版&#xff09;&#xff08;软件开发视频大讲堂&#xff09;【文末送书-45】 在当今数字化时代&#xff0c;数据是企业成功的关…

django orm DateTimeField 6位小数精度问题

from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段