LeetCode 153. Find Minimum in Rotated Sorted Array

153. Find Minimum in Rotated Sorted Array

Medium

1413192FavoriteShare

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e.,  [0,1,2,4,5,6,7] might become  [4,5,6,7,0,1,2]).

Find the minimum element.

You may assume no duplicate exists in the array.

Example 1:

Input: [3,4,5,1,2] 
Output: 1

Example 2:

Input: [4,5,6,7,0,1,2]
Output: 0

這道題沒什麼太多彎路,就二分法縷清楚就行,Accepted代碼如下:

class Solution {
    public int findMin(int[] nums) {
        int l = nums.length;
        if (l == 1) {
            return nums[0];
        }
        int start = 0;
        int end = l - 1;
        while (start < end - 1) {
            int mid = (start + end) / 2;
            if (nums[mid] < nums[end]) {
                end = mid;
            } else {
                start = mid;
            }
        }
        return Math.min(nums[start], nums[end]);
    }
}

這解法顯示超過100%的時間複雜度和87.5%的空間複雜度,看來還算優的

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章