Search in Rotated Sorted Array I  public boolean search(int[] A, int target) {         int l = A.length;         int left = 0, right = l-1, mid;                  while (left <= right) {             mid = (left + right) / 2;             if (A[mid] == target) return true;                          if (A[mid] < A[right] || A[mid] < A[left])                 if (target > A[mid] && target <= A[right])                     left = mid + 1;                 else                      right = mid - 1;             else if (A[mid] > A[right] || A[mid] > A[left])                 if (target >= A[left] && target < A[mid])                     right = mid - 1;                 else                      left = mid + 1;             else {                 left ++;                 right --;             }         }         return false;     }&II

http://oj.leetcode.com/problems/search-in-rotated-sorted-array/

Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.

http://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/

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.