LeetCode – Search in Rotated Sorted Array II (Java)

Follow up for “Search in Rotated Sorted Array“: what if duplicates are allowed? Write a function to determine if a given target is in the array.

Java Solution

public boolean search(int[] nums, int target) {
    int left=0;
    int right=nums.length-1;
 
    while(left<=right){
        int mid = (left+right)/2;
        if(nums[mid]==target)
            return true;
 
        if(nums[left]<nums[mid]){
            if(nums[left]<=target&& target<nums[mid]){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }else if(nums[left]>nums[mid]){
            if(nums[mid]<target&&target<=nums[right]){
                left=mid+1;
            }else{
                right=mid-1;
            }
        }else{
            left++;
        }    
    }
 
    return false;
}

1 thought on “LeetCode – Search in Rotated Sorted Array II (Java)”

  1. why do we need

    else
    {
    left++

    }

    in case of sorted?? but in this case WE WILL MISS LEFT MOST ELEMENT , cause middle will never be 0.

    better check before middle left/right equal target!!!

Leave a Comment