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

力扣每日一题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

思路及题解:

找到第一个大于等于target的数的下标即可,如果没有大于等于target的数,就插入数组尾部,即返回numsSize。用二分法查找。

代码:

int searchInsert(int* nums, int numsSize, int target){int lo=0;int hi=numsSize-1;int mid;int ans=numsSize;// if(nums[0]>target) return 0;// if(target>nums[hi]) return numsSize;//找第一个大于等于target的数while(lo<=hi){mid=(lo+hi)/2;if(target<=nums[mid]){ans=mid;hi=mid-1;}else{lo=mid+1;}}return ans;
}

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

相关文章:

  • Iptabels的相关描述理解防火墙的必读文章
  • Maven 构建项目测试
  • 机器学习 - 似然函数:概念、应用与代码实例
  • LeetCode 热题 100-49. 字母异位词分组
  • TensorFlow入门(十九、softmax算法处理分类问题)
  • 刷题用到的非常有用的函数c++(持续更新)
  • 黑客技术(网络安全)——自学思路
  • lNmp安装:
  • Fisher辨别分析
  • 【Zookeeper专题】Zookeeper选举Leader源码解析
  • 机器学习之自训练协同训练
  • ubuntu 通过apt-get快速安装 docker
  • C++医院影像科PACS源码:三维重建、检查预约、胶片打印、图像处理、测量分析等
  • 企业聊天应用程序使用 Kubernetes
  • 记录用命令行将项目打包成war包
  • Linux基础知识笔记
  • Laya3.0 入门教程
  • 3D全景虚拟样板间展销系统扩展用户市场范围
  • 如何编写lua扩展库
  • Java List 中存不同的数据类型
  • pyqt5:openpyxl 读取 Excel文件,显示在 QTableWidget 中
  • 在RabbitMQ中使用新的MQTT 5.0功能
  • flinkcdc 体验
  • Kafka知识补充
  • 【MAC】升级 Mac os 后报错
  • LeetCode(力扣)416. 分割等和子集Python
  • Redis之缓存一致性
  • LeetCode-199-二叉树的右视图
  • 二叉树的最近公共祖先
  • C++ 补充 反向迭代器的实现