LeetCode热题100(搜索插入位置)

题目描述

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

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

代码:

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

思路复盘:

1.二分法的思路,注意最后返回的是left,分析原因,此时left > right才会跳出循环,第一种情况left = temp+1之后导致的跳出循环,target大于left和right所在的位置的值,往后移一位便是插入的位置。第二种情况,right = temp - 1导致的,target小于left和right所在的位置,返回之前的right所在的位置,也就是left。

相关推荐
BK贝壳8 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
企业数字化笔记10 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型
人工智能·算法·音视频
?abc!11 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
小郎君65814 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖
算法
酌沧14 小时前
MemT让记忆成为模型内生能力
jvm·人工智能·算法
hold?fish:palm14 小时前
40 二叉树的直径
c++·leetcode
Shimeri14 小时前
越卷越像:我用遗传算法做了个"内卷"实验
算法·three.js·数据可视化·遗传算法·进化算法
Evand J15 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接
算法·电机·1024程序员节·卡尔曼滤波
guo_wen_qiang15 小时前
二叉树的层序遍历-使用双端队列Deque
算法·leetcode·1024程序员节
爱读书的小胖15 小时前
LeetCode 55 跳跃游戏 C 语言解题分析
c语言·数据结构·算法·leetcode·1024程序员节