劍指offer算法題006:旋轉(zhuǎn)數(shù)組的最小數(shù)字

小編在求職找找工作期間劍指offer上的算法題刷了很多遍砾淌,并且每道題小編當時都總結(jié)了一種最適合面試時手撕算法的最優(yōu)解法磕蛇∑盗玻考慮到劍指offer算法題在面試中的高頻出現(xiàn)霸褒,小編每天和大家分享一道劍指offer上的算法題司顿,以及小編總結(jié)的答案芒粹。下面是第006道劍指offer算法題:

題目描述

把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)免猾。例如是辕,
輸入一個非遞減排序的數(shù)組的一個旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素猎提。
例如获三,數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉(zhuǎn),該數(shù)組的最小值為1锨苏。
NOTE:給出的所有元素都大于0疙教,若數(shù)組大小為0,請返回0伞租。

解析:

見代碼注釋


public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array[0]<array[array.length-1])    return array[0];//輸入數(shù)組沒有旋轉(zhuǎn)
         
        int low = 0 ; int high = array.length - 1;
         
        //最小的數(shù)字在旋轉(zhuǎn)之后的第二部分遞增序列中贞谓,所以只需要不斷逼近第二段遞增序列的第一個元素即可
        while(low < high){
            int mid =(high + low)>>1;     
             
            if(array[mid] < array[high]){//[mid,high]屬于第二段遞增序列。所以的往前尋找第二段遞增序列的開頭葵诈,移動high指針
                high = mid;
            }else if(array[mid] > array[high]){//mid在第一段遞增序列中,high在第二段遞增序列中裸弦,在mid之后尋找第二段遞增序列的開頭
                low = mid+1;
            }else{//相等無法判斷mid在那個遞增序列中
                high--;
            }  
        }
        return array[low];
    }
     
    //兩個都可以過,這種解法有點奇怪,當數(shù)組有序的時候作喘,應(yīng)該是通不過d
    public int minNumberInRotateArray2(int [] array) {
        int low = 0 ; int high = array.length - 1;
        //最小的數(shù)字在遞減部分理疙,所以只需判斷哪一部分遞減即可
        //另外第一部分不遞減,那么第二部分就一定遞減泞坦,鎖以只需要判斷一半即可
        while(low < high){
            int mid =(high + low) >> 1;       
            if(array[mid] < array[low]){//如果前半段遞減的話窖贤,最小值在前半段
                high = mid;
            }else if(array[mid] == array[low]){
                low = low + 1;
            }else if(array[mid]>array[low]){//這里不好判斷,因為low可能是最小值
                low = mid;//這里表示后半段遞減,所以最小值在前半段
            }  
        }
        return array[low];
    }
}

其他文章

1. 學習筆記和學習資料匯總:前端 + 后端 + java + 大數(shù)據(jù) + python + 100多實戰(zhàn)項目 + C++

2. 我的秋招經(jīng)歷總結(jié):一站式秋招規(guī)劃

3. 零基礎(chǔ)學爬蟲

4. 零基礎(chǔ)C++學習總結(jié)

歡迎關(guān)注個人公眾號【菜鳥名企夢】赃梧,公眾號專注:互聯(lián)網(wǎng)求職面經(jīng)滤蝠、javapython授嘀、爬蟲物咳、大數(shù)據(jù)等技術(shù)分享:

公眾號菜鳥名企夢后臺發(fā)送“csdn”即可免費領(lǐng)取【csdn】和【百度文庫】下載服務(wù);

公眾號菜鳥名企夢后臺發(fā)送“資料”:即可領(lǐng)取5T精品學習資料粤攒、java面試考點java面經(jīng)總結(jié)所森,以及幾十個java、大數(shù)據(jù)項目夯接,資料很全,你想找的幾乎都有

掃碼關(guān)注纷妆,及時獲取更多精彩內(nèi)容盔几。(博主985、A+學科碩士掩幢,今日頭條大數(shù)據(jù)工程師)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逊拍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子际邻,更是在濱河造成了極大的恐慌芯丧,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件世曾,死亡現(xiàn)場離奇詭異缨恒,居然都是意外死亡,警方通過查閱死者的電腦和手機轮听,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門骗露,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人血巍,你說我怎么就攤上這事萧锉。” “怎么了述寡?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵柿隙,是天一觀的道長。 經(jīng)常有香客問我鲫凶,道長禀崖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任掀序,我火速辦了婚禮帆焕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己叶雹,他們只是感情好财饥,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著折晦,像睡著了一般钥星。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上满着,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天谦炒,我揣著相機與錄音,去河邊找鬼风喇。 笑死宁改,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的魂莫。 我是一名探鬼主播还蹲,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耙考!你這毒婦竟也來了谜喊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤倦始,失蹤者是張志新(化名)和其女友劉穎斗遏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋邑,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡拗踢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年瞒渠,在試婚紗的時候發(fā)現(xiàn)自己被綠了揩抡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簇爆。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖视译,靈堂內(nèi)的尸體忽然破棺而出嬉荆,到底是詐尸還是另有隱情,我是刑警寧澤酷含,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布鄙早,位于F島的核電站,受9級特大地震影響椅亚,放射性物質(zhì)發(fā)生泄漏限番。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一呀舔、第九天 我趴在偏房一處隱蔽的房頂上張望弥虐。 院中可真熱鬧扩灯,春花似錦、人聲如沸霜瘪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颖对。三九已至捻撑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缤底,已是汗流浹背顾患。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留个唧,地道東北人江解。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像坑鱼,于是被迫代替她去往敵國和親膘流。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354