33. Search in Rotated Sorted Array

class Solution {
    public int search(int[] nums, int target) {
        int start = 0;
        int end = nums.length;
        
        while(start < end){
            int mid = (start+end)/2;
            if (nums[mid] == target) return mid;
            
            if(nums[mid]>=nums[0]){
                if (target<nums[mid] && target>=nums[start]){
                    end = mid;
                }else{
                    start = mid+1;
                }
            }else{
                if (target>nums[mid] && target<=nums[end-1]){
                    start = mid+1;
                }else{
                    end = mid;
                }
            }
        }
        return -1;
    }
}

Last updated