Closed congr closed 5 years ago
Use binsearch which is slightly different.
class Solution {
public int search(int[] nums, int target) {
if (nums.length == 0) return -1;
int s = 0, e = nums.length-1;
while(s <= e) {
int m = (s+e) / 2;
if (nums[m] == target) return m;
if (nums[s] <= nums[m]) {
if (nums[s] <= target && target <= nums[m]) e = m;
else s = m+1;
}
else if (nums[m] <= nums[e]) {
if (nums[m] <= target && target <= nums[e]) s = m;
else e = m-1;
}
}
return -1; // not found
}
}
related to #206, #422.
Similar questions;
https://leetcode.com/problems/search-in-rotated-sorted-array/