1. 程式人生 > >LeetCode | 153. Find Minimum in Rotated Sorted Array

LeetCode | 153. Find Minimum in Rotated Sorted Array

題目:

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

題意:

找到翻轉的陣列中最小的值。之前面試遇到過一次,需要二分更優的思路。今天感冒,就只寫O(n)了。=  =

程式碼:

class Solution {
public:
    int findMin(vector<int>& nums) {
        if(nums.size() == 1)
            return nums[0];
        if(nums[0] < nums[nums.size() - 1])
            return nums[0];
        int res;
        for(int i = 0; i<nums.size() - 1; i++)
        {
            if(nums[i] > nums[i + 1])
            {
                res = nums[i + 1];
                break;
            }
        }
        return res;
    }
};