83.每日一练:搜索插入位置(力扣第35题)

问题描述

代码解决以及思想

cpp 复制代码
class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = 0;                      // 定义左边界
        int right = nums.size() - 1;       // 定义右边界

        while (left <= right) {            // 当左边界小于或等于右边界时,执行循环
            int middle = left + (right - left) / 2;  // 计算中间位置,避免整数溢出

            if (nums[middle] == target) {
                return middle;              // 如果找到目标元素,返回中间位置
            } else if (nums[middle] > target) {
                right = middle - 1;        // 目标在左半部分,更新右边界
            } else {
                left = middle + 1;         // 目标在右半部分,更新左边界
            }
        }
        
        return right + 1;  // 如果未找到目标元素,返回插入位置
    }
};

代码的思路是实现一个搜索插入位置的函数。它首先进行二分查找,尝试找到目标元素,如果找到则返回其索引;如果没找到,最后返回 right + 1,表示插入位置。这是因为 right 是最后一次更新的右边界,它指向小于目标元素的最后一个元素,所以 right + 1 是目标元素应该插入的位置。

写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

相关推荐
叫我:松哥2 分钟前
基于LSTM与ARIMA的城市空气质量分析与预测系统
人工智能·python·rnn·算法·机器学习·flask·lstm
j7~3 分钟前
【C++】模板初阶--函数模板,类模板详解
数据结构·c++·算法·函数模板·类模板·函数模板实例化
IT策士8 分钟前
Redis 从入门到精通:数据结构Hash 与 List
数据结构·redis·哈希算法
无限码力17 分钟前
阿里算法岗 0530笔试真题 - 寻找满足条件的最优子序列
算法·阿里笔试真题·阿里机试真题·阿里算法岗笔试真题·阿里算法题
@小阿宝23 分钟前
机器人正向逆向运动学
算法·机器人
小雨下雨的雨25 分钟前
数独算法与求解器鸿蒙PC Electron框架完成深度解析
javascript·人工智能·算法·游戏·华为·electron·鸿蒙系统
HZ·湘怡28 分钟前
数据结构之排序算法 (1)--插入排序
c语言·数据结构·算法·排序算法
ouliten28 分钟前
[Triton笔记7]融合注意力 (Fused Attention)
人工智能·笔记·算法
开源Z28 分钟前
LeetCode 238 · 除自身以外数组的乘积:左右两遍扫描,不用除法
算法·leetcode
BAGAE40 分钟前
FEC-RS前向纠错编码理论及工程实施研究
c语言·c++·qt·算法·决策树·链表