[LeetCode] Search in Rotated Sorted Array II

来源:互联网 发布:西安电子科技大学网络教育 编辑:程序博客网 时间:2024/06/09 07:43

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.

 
public class Solution {    public boolean search(int[] A, int target) {        int lo = 0;int hi = A.length - 1;int mid;while (lo <= hi) {mid = (lo + hi) >> 1;if (target == A[mid]) {return true;} else if (A[lo] == A[mid]) { // A[mid] = A[mid+] = ... A[lo]for (int i = lo; i < mid; i++) {if (A[i] == target)return true;}lo = mid + 1;} else if (A[lo] < A[mid]) {if (target >= A[lo] && target < A[mid]) {hi = mid - 1;} else {lo = mid + 1;}} else {if (target > A[mid] && target <= A[hi]) {lo = mid + 1;} else {hi = mid - 1;}}}return false;    }}

0 0