今際の国の呵呵君
Saturday, September 2, 2017
[LeetCode]Find Minimum in Rotated Sorted Array II
和
Find Minimum in Rotated Sorted Array
类似,区别就是允许重复。那么重复能带来的问题就是,以前我们是根据nums[mid]和nums[hi]的大下来判断右半段是否sorted,但是如果相等的话,我们其实是无法判断的。比如:
2,1,2,2,2
2,2,2,1,2
2,2,2,2,2
这三种情况左边sorted或者右边sorted或者整个数组就是sorted的情况我们无法分辨,所以对于相等的情况我们必须特殊处理。如果是用的递归写的二分,我们判断到相等的时候需要左右两边都去递归,取左右两边最小值。如果是循环的话我们就排除hi的数,时间复杂度最坏的情况下可以退化到O(n)。代码如下:
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment