1. 程式人生 > >【LeetCode】153. 尋找旋轉排序陣列中的最小值

【LeetCode】153. 尋找旋轉排序陣列中的最小值

題目描述

假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。

( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。

請找出其中最小的元素。

你可以假設陣列中不存在重複元素。

示例

輸入: [3,4,5,1,2] 輸出: 1

輸入: [4,5,6,7,0,1,2] 輸出: 0

解決方法

class Solution {
public:
    int findMin(vector<int>& nums) {
        
        int min=INT_MAX;
        int left=0,right=nums.size
()-1; while(left<=right){ int mid=(left+right)/2; if (nums[mid]<nums[right]){ if (nums[mid]<min) min=nums[mid]; right=mid-1; } else{ if (nums[left]<min) min=nums[left]; left=
mid+1; } } return min; } };