「算法」旋轉(zhuǎn)數(shù)組的最小數(shù)字

0006 旋轉(zhuǎn)數(shù)組的最小數(shù)字

題目描述

把一個(gè)數(shù)組最開(kāi)始的若干個(gè)元素搬到數(shù)組的末尾榨汤,我們稱之為數(shù)組的旋轉(zhuǎn)。 輸入一個(gè)非減排序的數(shù)組的一個(gè)旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。

例如: 數(shù)組 {3,4,5,1,2}{1,2,3,4,5} 的一個(gè)旋轉(zhuǎn)趾娃,該數(shù)組的最小值為1。

說(shuō)明:給出的所有元素都大于0缔御,若數(shù)組大小為0茫舶,請(qǐng)返回0。

題目地址

解題報(bào)告

直接查找

本題解由微信公眾號(hào)小猿刷題提供, 錯(cuò)誤之處, 歡迎指正.

在兩段范圍內(nèi)都是非降序刹淌,當(dāng)不符合這個(gè)規(guī)律時(shí),就找到了最小數(shù)字

import java.util.*;
/**
 *  微信公眾號(hào)"小猿刷題"
 */
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length == 0){
            return 0;
        }
        int min = array[0];
        for(int i = 1; i < array.length ; i ++ ){
            if(array[i] < min){
                min = array[i];
            }
        }
        return min;
    }
}

先排序再找

本題解由微信公眾號(hào)小猿刷題提供, 錯(cuò)誤之處, 歡迎指正.

利用 Arrays 工具類里的排序函數(shù)讥耗,默認(rèn)的排序規(guī)則是從小到大有勾,排序后的數(shù)組第一個(gè)值就是最小值.

import java.util.*;
/**
 *  微信公眾號(hào)"小猿刷題"
 */
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        int n = array.length;
        if(n == 0){
            return 0;
        }
        Arrays.sort(array);
        return array[0];
    }
}

優(yōu)先級(jí)隊(duì)列

本題解由微信公眾號(hào)小猿刷題提供, 錯(cuò)誤之處, 歡迎指正.

將數(shù)組元素挨著丟進(jìn)優(yōu)先隊(duì)列,優(yōu)先隊(duì)列默認(rèn)為最小堆古程,彈出的第一個(gè)數(shù)就是整個(gè)數(shù)組的最小值.

import java.util.*;
/**
 *  微信公眾號(hào)"小猿刷題"
 */
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        int n = array.length;
        if(n == 0){
            return 0;
        }
        PriorityQueue<Integer> queue = new PriorityQueue<>();
        for(int i = 0;i<n;i++){
            queue.add(array[i]);
        }
        return queue.poll();
    }
}

二分查找

本題解由微信公眾號(hào)小猿刷題提供, 錯(cuò)誤之處, 歡迎指正.

二分查找變種蔼卡,沒(méi)有具體的值用來(lái)比較。那么用中間值和高低位進(jìn)行比較挣磨,看處于遞增還是遞減序列雇逞,進(jìn)行操作縮小范圍荤懂。

/**
 *  微信公眾號(hào)"小猿刷題"
 */
public class Solution {
    public int minNumberInRotateArray(int[] array) {
        int i = 0;
        int j = array.length - 1;
        while (i < j) {
            if (array[i] < array[j]) {
                return array[i];
            }
            int mid = (i + j) / 2;
            if (array[mid] > array[i]) {
                i = mid + 1;
            } else if (array[mid] < array[j]) {
                j = mid; // 證明進(jìn)入了有序數(shù)組,直接輸出
            } else {
                i++;  
            }
        }
        return array[i];
    }
}
小猿刷題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載塘砸,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者节仿。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市掉蔬,隨后出現(xiàn)的幾起案子廊宪,更是在濱河造成了極大的恐慌,老刑警劉巖女轿,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箭启,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蛉迹,警方通過(guò)查閱死者的電腦和手機(jī)傅寡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)北救,“玉大人荐操,你說(shuō)我怎么就攤上這事∨で悖” “怎么了淀零?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)膛壹。 經(jīng)常有香客問(wèn)我驾中,道長(zhǎng),這世上最難降的妖魔是什么模聋? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任肩民,我火速辦了婚禮,結(jié)果婚禮上链方,老公的妹妹穿的比我還像新娘持痰。我一直安慰自己,他們只是感情好祟蚀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布工窍。 她就那樣靜靜地躺著,像睡著了一般前酿。 火紅的嫁衣襯著肌膚如雪患雏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天罢维,我揣著相機(jī)與錄音淹仑,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛匀借,可吹牛的內(nèi)容都是我干的颜阐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吓肋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凳怨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蓬坡,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猿棉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后屑咳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萨赁,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年兆龙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杖爽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡紫皇,死狀恐怖慰安,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情聪铺,我是刑警寧澤化焕,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站铃剔,受9級(jí)特大地震影響撒桨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜键兜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一凤类、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧普气,春花似錦谜疤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至仔沿,卻和暖如春坐桩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背于未。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烘浦。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓抖坪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親闷叉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子擦俐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容