LeetCode-Search in Rotated Sorted Array II

Posted IncredibleThings

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-Search in Rotated Sorted Array II相关的知识,希望对你有一定的参考价值。

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

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

Write a function to determine if a given target is in the array.

解决方法就是对于A[mid]==A[left]和A[mid]==A[right]单独处理。

 

public class Solution {
    public boolean search(int[] nums, int target) {
        if(nums==null || nums.length==0){
            return false;
        }
        int left=0;
        int right=nums.length-1;
        
        while(left<=right){
            int mid=left+(right-left)/2;
            if(target<nums[mid]){
                if(nums[mid]< nums[right]){// right side is sorted
                    right=mid-1;
                }
                else if(nums[mid] == nums[right]){//can‘t tell right is sorted or not, move pointer
                    right--;
                }
                else {//left side is sorted
                    if(target<nums[left]){
                        left=mid+1;
                    }
                    else{
                        right=mid-1;
                    }
                }
            }
            else if(target>nums[mid]){
                if(nums[mid] > nums[left]){//left is sorted
                    left=mid+1;
                    
                }
                else if(nums[mid]== nums[left]){// cann‘t tell left side is sorted or not, move pointer
                    left++;
                }
                else{//right is sorted
                    if(target>nums[right]){
                        right=mid-1;
                    }
                    else{
                        left=mid+1;
                    }
                }
            }
            else{
                return true;
            }
        }
        return false;
    }
}

 

以上是关于LeetCode-Search in Rotated Sorted Array II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-Search in Rotated Sorted Array II-81

LeetCode-Search a 2D Matrix

leetCode-Search Insert Position

LeetCode-Search a 2D Matrix II

leetcode-Search a 2D Matrix II-240

array copy rotate in Pointwise