159. Find Minimum in Rotated Sorted Array


做题历程:

  1. 本题应该在Leetcode做过,本次独立解出,耗时10分钟

本题需要注意的思路要有一点改变,要更加关注扔掉前半部分还是后半部分,剩下的就是普通的Binary Search,直接上代码了,代码如下:

class Solution {
public:
    /**
     * @param nums: a rotated sorted array
     * @return: the minimum number in the array
     */
    int findMin(vector<int> &nums) {
        // write your code here
        int left = 0;
        int right = nums.size() - 1;

        while (left + 1 < right) {
            int middle = left + (right - left) / 2;
            if (nums[middle] < nums[left]) {
                // throw away the right part
                right = middle;
            }
            else if (nums[middle] > nums[right]) {
                left = middle;
            }
            else {
                return nums[left];
            }
        }
        return min(nums[left], nums[right]);
    }

results matching ""

    No results matching ""