153. Find Minimum in Rotated Sorted Array (Array; Divide-and-Conquer)

Posted joannae

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了153. Find Minimum in Rotated Sorted Array (Array; Divide-and-Conquer)相关的知识,希望对你有一定的参考价值。

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.

class Solution {
public:
    int findMin(vector<int>& nums) {
        return dfs(nums,0,nums.size()-1);
    }
    
    int dfs(vector<int>& nums, int start, int end){
        if(start==end) return nums[start];
        
        int mid = start + ((end - start) >> 1);
        if(nums[start] <= nums[mid] && nums[mid] < nums[end]){ //no rotate
            return nums[start];
        }
        else if(nums[start] <= nums[mid] && nums[mid] > nums[end]){ //rotate in the right
            return dfs(nums, mid+1,end);
        }
        else{ //rorate in the left
            return dfs(nums, start, mid);
        }
    }
};

 

以上是关于153. Find Minimum in Rotated Sorted Array (Array; Divide-and-Conquer)的主要内容,如果未能解决你的问题,请参考以下文章

153. Find Minimum in Rotated Sorted Array

#Leetcode# 153. Find Minimum in Rotated Sorted Array

153. Find Minimum in Rotated Sorted Array

153. Find Minimum in Rotated Sorted Array

153 Find Minimum in Rotated Sorted Array

153. Find Minimum in Rotated Sorted Array