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 是目标元素应该插入的位置。

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

相关推荐
顾安r8 分钟前
11.15 脚本算法 加密网页
服务器·算法·flask·html·同态加密
前端小L24 分钟前
图论专题(四):DFS的“回溯”之舞——探寻「所有可能路径」
算法·深度优先·图论
司铭鸿28 分钟前
数学图论的艺术:解码最小公倍数图中的连通奥秘
运维·开发语言·算法·游戏·图论
洛_尘41 分钟前
数据结构--7:排序(Sort)
java·数据结构
元亓亓亓1 小时前
LeetCode热题100--39. 组合总和
算法·leetcode·职场和发展
2401_841495641 小时前
【LeetCode刷题】找到字符串中所有字母异位词
数据结构·python·算法·leetcode·数组·滑动窗口·找到字符串中所有字母异位词
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——寻找数组的中心下标
算法·leetcode·职场和发展·结构与算法
py有趣1 小时前
LeetCode算法学习之鸡蛋掉落
学习·算法·leetcode
放羊郎1 小时前
机器人自主导航方案概述
人工智能·算法·机器人·slam·建图
冷徹 .1 小时前
Edu144 CD
c++·算法