首页 > 其他 > 详细

LeetCode Find Minimum in Rotated Sorted Array II

时间:2015-10-05 06:59:13      阅读:241      评论:0      收藏:0      [点我收藏+]

原题链接在这里:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/

Find Minimum in Rotated Sorted Array的扩展, 这里有duplicates.

时间复杂度出现了变化,原来可以根据nums[l] 和 nums[r]的大小关系比较,判断下一步是左面查找还是右面查找,现在若是nums[l] == nums[mid]时无法判断。

e.g. [10,1,10,10,10]. nums[l] == nums[mid]. Worst case is all nums are equal, 此时 l 每次右移一位。Time O(n), Space O(1).

AC Java:

 1 public class Solution {
 2     public int findMin(int[] nums) {
 3         
 4         if(nums == null || nums.length == 0){
 5             return Integer.MAX_VALUE;
 6         }
 7         int l = 0;
 8         int r = nums.length -1;
 9         int res = nums[0];
10         while(l < r-1){
11             int mid = l + (r-l)/2;
12             if(nums[l] < nums[mid]){
13                 res = Math.min(res, nums[l]);
14                 l = mid+1;
15             }else if(nums[l] > nums[mid]){
16                 res = Math.min(res, nums[mid]);
17                 r = mid-1;
18             }else{
19                 l++;
20             }
21         }
22         res = Math.min(res, nums[l]);
23         res = Math.min(res, nums[r]);
24         return res;
25     }
26 }

 

LeetCode Find Minimum in Rotated Sorted Array II

原文:http://www.cnblogs.com/Dylan-Java-NYC/p/4855293.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!