33. Search in Rotated Sorted Array
Problem
Intuition
Time Complexity
Space Complexity
Solution
Last updated
Last updated
nums[low] <= nums[mid] // It means left half is sortedclass Solution {
public int search(int[] nums, int target) {
int low = 0, high = nums.length - 1;
int result = -1;
while(low <= high) {
int mid = low + (high-low)/2;
if(nums[mid] == target) { // Target found
return mid;
}
if(nums[low] <= nums[mid]) { // Left sorted
if(nums[low] <= target && target < nums[mid]) { // Search left
high = mid - 1;
} else { // Search towards right
low = mid + 1;
}
} else { // Right sorted
if(nums[mid] < target && target <= nums[high]) { // Search right
low = mid + 1;
} else { // Search towards left
high = mid - 1;
}
}
}
return result;
}
}