leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
把一個數(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
代碼
class Solution {public int minArray(int[] numbers) {int left=0,right=numbers.length-1;if(numbers.length==1) return numbers[0];while (left<right){int mid=((right-left)>>1)+left;if(numbers[mid]<numbers[right])//旋轉(zhuǎn)點在右邊區(qū)間right=mid;else if(numbers[mid]>numbers[right])//旋轉(zhuǎn)點在左邊區(qū)間left=mid+1;else right--;//出現(xiàn)相等則縮小邊界}return numbers[left];} }總結(jié)
以上是生活随笔為你收集整理的leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到抱小女孩好不好
- 下一篇: 梦到自己摔跤是什么征兆