leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如,數組 [3,4,5,1,2] 為 [1,2,3,4,5] 的一個旋轉,該數組的最小值為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])//旋轉點在右邊區間right=mid;else if(numbers[mid]>numbers[right])//旋轉點在左邊區間left=mid+1;else right--;//出現相等則縮小邊界}return numbers[left];} }總結
以上是生活随笔為你收集整理的leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到抱小女孩好不好
- 下一篇: leetcode1254. 统计封闭岛屿