BiruLyu
7/29/2017 - 5:56 PM

81. Search in Rotated Sorted Array II(#).java

public class Solution {
    public boolean search(int[] nums, int target) {
        int len = nums.length;
        int i = 0;
        int j = len - 1;
        while (i <= j) {
            int mid = i + (j - i) / 2;
            if (nums[mid] == target) {
                return true;
            }
            
            if (nums[mid] > nums[j]) {
                if (nums[mid] > target && nums[i] <= target) {
                    j = mid - 1;
                } else {
                    i = mid + 1;
                }
            } else if (nums[mid] < nums[j]) {
                if (nums[mid] < target && nums[j] >= target) {
                    i = mid + 1;
                } else {
                    j = mid - 1;
                }
            } else {
                j--;  // input [1] 0 
            }
        }
        return false;
    }
}