【每日一题】LeetCode153.寻找旋转排序数组中的最小值
本文最后更新于:2023年11月8日 中午
LeetCode153.寻找旋转排序数组中的最小值
思路
这道题的大概意思是将数组进行顺序(划重点)变换以后,要求最终的最小的元素,题目指出的数据量只有5000,那么直接线性搜索应该也可以过,但是这道题用二分的思路来考虑的话会更有趣一些。
先看看体面中的例子
数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。
由题中给出的例子来看,这个数组不论旋转多少次,都存一个一个中间点,这个中间点之前和之后的数据都是有序的,而这个中间点在原始状态下是在整个数组的最前面的,这时候整个数组都是有序的(特判要点),而在朴素情况下,这个中间点就是指的二分点,所以此题得解
C++代码
1 |
|
AcWing68.0到n-1中缺失的数字
思路
这里看过题解以后有个巧解思路,即在整个数组有序的前提下,缺失一组数之后在这之后的数与其序号的差就会增大1个,以此来作为二分的判断条件,此题即可得解
C++代码
1 |
|
【每日一题】LeetCode153.寻找旋转排序数组中的最小值
https://www.0error.net/2021/04/76256c75.html