力扣35.搜索插入位置

cpp 复制代码
#include <iostream>
#include <vector>

using namespace std;

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int n = nums.size();
        int left = 0, right = n - 1, ans = n;
        while (left <= right) {
            int mid = ((right - left) >> 1) + left;//如果不加left那么就只要right与left
            if (target <= nums[mid]) {
                ans = mid;
                right = mid - 1;
            }
            else {
                left = mid + 1;
            }
        }
        return ans;
    }
};

int main() {
    Solution solution;
    vector<int> nums = { 1, 3, 5, 6 ,9};
    int target = 7;
    int result = solution.searchInsert(nums, target);
    cout << "输出: " << result << endl;
    return 0;
}

分析:利用二分法,不停的逼近这个值,如果目标值小于二分法求取的中间索引的这个值,那么首先保存这个索引值,第二右边的索引值等于mid-1,就是向左去夹近。如果target大于这个值则左边界+1,每次mid的值是right-left的和>>1并且加上lef

相关推荐
huapiaoy10 分钟前
Redis中数据类型的使用(hash和list)
redis·算法·哈希算法
冷白白23 分钟前
【C++】C++对象初探及友元
c语言·开发语言·c++·算法
鹤上听雷31 分钟前
【AGC005D】~K Perm Counting(计数抽象成图)
算法
一叶祇秋44 分钟前
Leetcode - 周赛417
算法·leetcode·职场和发展
武昌库里写JAVA1 小时前
【Java】Java面试题笔试
c语言·开发语言·数据结构·算法·二维数组
ya888g1 小时前
GESP C++四级样题卷
java·c++·算法
Funny_AI_LAB1 小时前
MetaAI最新开源Llama3.2亮点及使用指南
算法·计算机视觉·语言模型·llama·facebook
NuyoahC1 小时前
算法笔记(十一)——优先级队列(堆)
c++·笔记·算法·优先级队列
jk_1011 小时前
MATLAB中decomposition函数用法
开发语言·算法·matlab
penguin_bark2 小时前
69. x 的平方根
算法