当前位置: 首页 > news >正文

Leecode热题100-35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104
class Solution {/**这题还需要解吗,太简单了吧解题思路:使用二分查找的方式,如果存在直接返回,如果不存在,找第一个小于等于它的位置,最后返回这个位置+1也可以找第一个大于等于它的位置,然后返回这个位置-1,但是这样处理比较麻烦,因为可能出现没有大于它的*/public int searchInsert(int[] nums, int target) {int left = 0;int right = nums.length - 1;int ans = -1;while(left <= right) {int mid = left + ((right - left) >> 1);//找到就返回索引值if(nums[mid] == target) {return mid;} else if(nums[mid] >= target) {right = mid - 1;} else {/**找到了大于等于它的,先计一个答案,后面找小于等于它更接近的有可能会更新它*/ans = mid;left = mid + 1;}}return ans + 1;}
}

http://www.lryc.cn/news/484680.html

相关文章:

  • 密码学知识点整理二:常见的加密算法
  • Linux如何将文件或目录打成rpm包?-- rpmbuild打包详解
  • RabbitMQ-死信队列(golang)
  • 爬虫开发工具与环境搭建——环境配置
  • 15.UE5等级、经验、血条,魔法恢复和消耗制作
  • 【Homework】【5】Learning resources for DQ Robotics in MATLAB
  • vue3中 ref和reactive的区别
  • 第十四章 Spring之假如让你来写AOP——雏形篇
  • 群控系统服务端开发模式-应用开发-前端个人资料开发
  • 动态规划技巧点
  • 深度学习之pytorch常见的学习率绘制
  • Spring Boot集成SQL Server快速入门Demo
  • 低代码牵手 AI 接口:开启智能化开发新征程
  • 【已解决】git push一直提示输入用户名及密码、fatal: Could not read from remote repository的问题
  • python语言基础-4 常用模块-4.13 其他模块
  • 微信小程序=》基础=》常见问题=》性能总结
  • JWT深度解析:Java Web中的安全传输与身份验证
  • 使用Java爬虫获取商品订单详情:从API到数据存储
  • Mybatis中批量插入foreach优化
  • Word VBA如何间隔选中多个(非连续)段落
  • Linux系统常用操作与命令指南
  • StructuredStreaming (一)
  • 由播客转向个人定制的音频频道(1)平台搭建
  • [自然语言处理] [AI]深入理解语言与情感分类:从基础到深度学习的进展
  • 【GPTs】Gif-PT:DALL·E制作创意动图与精灵动画
  • 云原生周刊:Istio 1.24.0 正式发布
  • Linux设置jar包开机启动
  • 计算机视觉和机器人技术中的下一个标记预测与视频扩散相结合
  • C语言之简单的获取命令行参数和环境变量
  • STL之vecor的使用(超详解)