当前位置:网站首页>LeetCode 35. 搜索插入位置 —vector遍历(O(logn)和O(n)的写法---二分查找法)
LeetCode 35. 搜索插入位置 —vector遍历(O(logn)和O(n)的写法---二分查找法)
2022-07-04 14:00:00 【Tianchao龙虾】
LeetCode 35. 搜索插入位置 —vector遍历(O(logn)和O(n)的写法—二分查找法)。
题目地址: https://leetcode.cn/problems/search-insert-position/
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2
题目解法:
O(n)的写法:
一开始我的写法如下: 考虑整体遍历这个vector,然后看目标值是否小于等于这个当前值,是的话直接返回索引。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()) return 1;
const int size = nums.size();
for (size_t i=0; i<size; ++i){
if (target <= nums[i]) return i;
}
return size;
}
};
但是看了题解之后,有如下写法:
O(logn)的写法:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()) return 1;
const int size = nums.size();
int left=0, right=size-1;
while(left<=right){
auto middle = left+(right-left)/2;
if(nums[middle] <target)
left = middle+1;
else
right = middle -1;
}
return left;
}
};
题目笔记
最上面的当然是可以得到结果,但是下面的优势在于,使用了二分查找的思想。但前提是这个数组是有序的。 前面当然是比较直观的,但是复杂度在O(n),二分查找只需要O(logn)。
边栏推荐
猜你喜欢
Building intelligent gray-scale data system from 0 to 1: Taking vivo game center as an example
Analysis of nearly 100 million dollars stolen and horizon cross chain bridge attacked
一篇文章搞懂Go语言中的Context
大神详解开源 BUFF 增益攻略丨直播
LVGL 8.2 text shadow
信号处理之一阶RC低通滤波器宏指令实现(繁易触摸屏)
[differential privacy and data adaptability] differential privacy code implementation series (XIV)
深度学习 神经网络的优化方法
近一亿美元失窃,Horizon跨链桥被攻击事件分析
深度学习 神经网络案例(手写数字识别)
随机推荐
MP3是如何诞生的?
LVGL 8.2 Line wrap, recoloring and scrolling
Programmers exposed that they took private jobs: they took more than 30 orders in 10 months, with a net income of 400000
Details of FPGA underlying resources
宽度与对齐
Who the final say whether the product is good or not? Sonar puts forward performance indicators for analysis to help you easily judge product performance and performance
【大连理工大学】考研初试复试资料分享
函数计算异步任务能力介绍 - 任务触发去重
Luo Gu - some interesting questions
Redis publish and subscribe
LVLG 8.2 circular scrolling animation of a label
Width accuracy
如何配和弦
浮点数如何与0进行比较?
PLC模拟量输入 模拟量转换FC S_ITR (CODESYS平台)
IO flow: node flow and processing flow are summarized in detail.
十六进制
Deep learning network regularization
LVGL 8.2 text shadow
直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构