Lintcode159 Find Minimum in Rotated Sorted Array solution 題解

【題目描述】

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).

Find the minimum element.

Notice

You may assume no duplicate exists in the array.

假設一個旋轉排序的數(shù)組其起始位置是未知的(比如0 1 2 4 5 6 7可能變成是4 5 6 7 0 1 2)。

你需要找到其中最小的元素。

注:你可以假設數(shù)組中不存在重復的元素。

【題目鏈接】

www.lintcode.com/en/problem/find-minimum-in-rotated-sorted-array/

【題目解析】

首先要判斷這個有序數(shù)組是否旋轉了,通過比較第一個和最后一個數(shù)的大小,如果第一個數(shù)小,則沒有旋轉,直接返回這個數(shù)。如果第一個數(shù)大,就要進一步搜索。

我們定義left和right兩個指針分別指向開頭和結尾,還要找到中間那個數(shù),然后和left指的數(shù)比較,如果中間的數(shù)大,則繼續(xù)二分查找右半段數(shù)組,反之查找左半段。終止條件是當左右兩個指針相鄰,返回小的那個。

【參考答案】

www.jiuzhang.com/solutions/find-minimum-in-rotated-sorted-array/

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容