154. 寻找旋转排序数组中的最小值 II
生活随笔
收集整理的這篇文章主要介紹了
154. 寻找旋转排序数组中的最小值 II
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)跳點(diǎn):--\(˙<>˙)/--
原本打算大年三十十一起寫完的,結(jié)果這篇拖到了年初一……
這道題比剛剛那道,麻煩一點(diǎn),因?yàn)橛兄貜?fù),所以我們需要考慮重復(fù)的情況,就是剛剛的兩種情況變成了三種:
- mid < right:left = mid+1
- mid > right:right = left;
- mid = right:left++;
為什么是++?題目說了升序,如果相等那么說明只有兩種可能
- 整個(gè)數(shù)組都是一個(gè)數(shù)
- 旋轉(zhuǎn)點(diǎn)極有可能就是這個(gè)數(shù)(貌似和解題無關(guān))
所以無論如何那種情況,題設(shè)想要的最小值一定得往后判斷,全數(shù)組一樣也得往后,因?yàn)檩斎氲拇a需要通用性。如果非要 -- 也可以,不過得從right--,并且left = mid。
代碼如下:
int findMin(int* nums, int numsSize){
int low = , high = numsSize-;
while (low < high)
{
if (nums[low] < nums[high])
{
return nums[low];
}
int mid = low + (high - low) / ;
if (nums[mid] > nums[high])
{
low = mid + ;
}
else if (nums[mid] < nums[high])
{
high = mid;
}
else
{
low++;
}
}
return nums[low];
}
算法不易,諸君共勉!
總結(jié)
以上是生活随笔為你收集整理的154. 寻找旋转排序数组中的最小值 II的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: usert
- 下一篇: 卷积神经网络训练的三个概念(Epoch,