[LeetCode] Find Minimum in Rotated Sorted Array

来源:互联网 发布:vb中len函数的使用方法 编辑:程序博客网 时间:2024/06/08 08:37

Suppose a sorted array 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.

Show Tags










其实这道题是求旋转数组中的最小值的,将有序数组绕某点旋转,得到旋转数组,所以最后的数组前后两半部分都是各自有序的,那么怎么得到最小值呢?《剑指offer 名企面试

官精讲典型编程题》中是用二分查找的。


class Solution:    # @param {integer[]} nums    # @return {integer}    def findMin(self, nums):        head = 0        end = len(nums) - 1        if nums[head] <= nums[end]:            return nums[head]                    while head <= end:            mid = (head + end) >> 1            if end - head == 1:                return nums[end]            if nums[mid] > nums[head]:                head = mid             elif nums[mid] < nums[end]:                end = mid                     




0 0