congr / world

2 stars 1 forks source link

LeetCode : 33. Search in Rotated Sorted Array #421

Closed congr closed 5 years ago

congr commented 5 years ago

https://leetcode.com/problems/search-in-rotated-sorted-array/

image

congr commented 5 years ago

Use binsearch which is slightly different.

congr commented 5 years ago
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
    }
}
congr commented 5 years ago

related to #206, #422.

Similar questions;

  1. Find Minimum in Rotated Sorted Array
  2. Search in Rotated Sorted Array
  3. Search in Rotated Sorted Array II