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%的空间复杂度,看来还算优的

 

 

 

 

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