Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array
public class Solution { public boolean search(int[] A, int target) { int l = 0; int r = A.length-1; while (l <= r) { int mid = (l + r) / 2; if (A[mid] == target) { return true; } if (A[mid] > A[l]) { if (A[mid] > target && A[l] <= target) { r = mid - 1; } else { l = mid + 1; } } else if(A[mid] < A[l]){ if (A[mid] < target && A[r] >= target) { l = mid + 1; } else { r = mid - 1; } }else{ return search(Arrays.copyOfRange(A, l, mid),target)||search(Arrays.copyOfRange(A, mid+1,r+1),target); } } return false; } }
[LeetCode]Search in Rotated Sorted Array II
原文地址:http://blog.csdn.net/guorudi/article/details/40895503