DEV Community

Prashant Mishra
Prashant Mishra

Posted on

Algo: Binary Search

Example: Search in rotated sorted array II

class 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(target==nums[mid]) return true;
            if(nums[left]==nums[mid] && nums[mid] == nums[right]){
                left++;
                right--;
                continue;
            }
            if(nums[left]<=nums[mid]){
               if(target<nums[mid] && target>=nums[left]) right = mid-1;
               else left=  mid+1;
            }
            else {
                if(target > nums[mid] && target<= nums[right]) left = mid+1;
                else right =  mid-1;
            }

        }
        return false;
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)