劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字

題目

把一個數(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。

示例 1:

輸入:[3,4,5,1,2]
輸出:1

示例 2:

輸入:[2,2,2,0,1]
輸出:0

題目解析

旋轉(zhuǎn)數(shù)組指的是將數(shù)組最小的 N 位移動到數(shù)組尾部,數(shù)組又是遞增的,所以當(dāng) i < i - 1 時,那么 nums[i] 就是最小值。

第一次

老規(guī)矩暴力解答,注意末尾出口,因?yàn)閿?shù)組可能未旋轉(zhuǎn)。魯迅說暴力不能解決問題,最終 offer 會到別人手里

class Solution {
    public int minArray(int[] numbers) {
        if (numbers == null || numbers.length == 0) return 0;
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] < numbers[0]) {
                return numbers[i];
            }
        }
        return numbers[0];
    }
}

第二次

二分才是本題真正考察的點(diǎn),魯迅也說過 上菜了

``
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容