给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为
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] <= 104nums为 无重复元素 的 升序排列数组-104 <= target <= 104
cppclass Solution { public: int searchInsert(vector<int>& nums, int target) { int l=0,r=nums.size()-1; while(l<r) { int mid=(l+r)/2; if(nums[mid]<target) { l=mid+1; }else{ r=mid; } } if(nums[r]<target) return nums.size(); return l; } };
LeetCode 35. 搜索插入位置
Liangwei Lin2026-05-12 11:38
相关推荐
小O的算法实验室15 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法小飞学编程...15 小时前
【哈希表】Tbisnic16 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理Brilliantwxx16 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口空堂与归17 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式动词ing18 小时前
【C语言】自定义函数+指针入门重生之后端学习18 小时前
283. 移动零[简单]✅一只小小的芙厨19 小时前
基础数论总结动词ing19 小时前
【C语言】结构体+文件基础夜不会漫长20 小时前
C++入门(1)