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

题解

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {
     int low=0;
     int high=nums.length-1;
     int mid=0;
     while(low<=high){
        mid=(low+high)/2;
        if(nums[mid]==target) return mid;
        else if(nums[mid]>target) high=mid-1;
        else if(nums[mid]<target) low=mid+1;
     }
     return low;
    }
}
相关推荐
晴空闲雲1 分钟前
数据结构与算法-线性表-线性表的应用
数据结构
@解忧杂货铺1 小时前
基于用户的协同过滤推荐算法实现(Java电商平台)
算法·机器学习·推荐算法
爱coding的橙子1 小时前
每日算法刷题Day31 6.14:leetcode二分答案2道题,结束二分答案,开始枚举技巧,用时1h10min
算法·leetcode·职场和发展
@ chen1 小时前
龟兔赛跑算法(Floyd‘s Cycle-Finding Algorithm)寻找重复数
算法
晨曦学习日记1 小时前
leetcode题解538:把二叉搜索树转换为累加树
算法
孟大本事要学习1 小时前
算法第13天|继续学习二叉树:平衡二叉树(递归)、二叉树所有路径(递归)、左叶子之和(递归)
学习·算法
wangjialelele1 小时前
双向链表——(有头双向循环链表)
数据结构·链表
梦境虽美,却不长2 小时前
数据结构 学习 链表 2025年6月14日08点01分
数据结构·学习·链表
无聊的小坏坏2 小时前
一文详解前缀和:从一维到二维的高效算法应用
数据结构·算法
泽02022 小时前
C++之模板进阶
开发语言·c++·算法