首页 > 其他 > 详细

154. Find Minimum in Rotated Sorted Array II

时间:2017-02-01 10:38:24      阅读:201      评论:0      收藏:0      [点我收藏+]

Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

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.

The array may contain duplicates.

 与Find Minimum in Rotated Sorted Array类似,可以和nums[left]比,也可以和nums[right]比,代码如下:

public class Solution {

    public int findMin(int[] nums) {

        int left = 0;

        int right= nums.length-1;

        while(left<right){

            if(nums[left]<nums[right]) return nums[left];

            int mid = left+(right-left)/2;

            if(nums[left]<nums[mid]){

                left = mid+1;

            }else if(nums[left]>nums[mid]){

                right = mid;

            }else{

                left++;

            }

        }

        return nums[left];

    }

}


public class Solution {

    public int findMin(int[] nums) {

        int left=  0;

        int right = nums.length-1;

        while(left<right){

            int mid = left+(right-left)/2;

            if(nums[mid]<nums[right]){

                right = mid;

            }else if(nums[mid]>nums[right]){

                left = mid+1;

            }else{

                right--;

            }

        }

        return nums[left];

    }

}

154. Find Minimum in Rotated Sorted Array II

原文:http://www.cnblogs.com/codeskiller/p/6359741.html

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