标签:
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.
1 class Solution { 2 public: 3 bool search(int A[], int n, int target) { 4 5 6 int left=0; 7 int right=n-1; 8 int mid; 9 while(left<=right) 10 { 11 12 mid=(left+right)/2; 13 if(A[mid]==target) 14 { 15 return true; 16 } 17 18 19 //增加了这些判断语句 20 bool isLeft=true; 21 22 for(int i=left;i<=mid;i++) 23 { 24 if(A[i]>A[mid]) 25 { 26 isLeft=false; 27 break; 28 } 29 } 30 31 if(isLeft) 32 { 33 if(A[left]<=target&&target<A[mid]) 34 { 35 right=mid-1; 36 } 37 else 38 { 39 left=mid+1; 40 } 41 } 42 else 43 { 44 if(A[mid]<target&&target<=A[right]) 45 { 46 left=mid+1; 47 } 48 else 49 { 50 right=mid-1; 51 } 52 } 53 54 } 55 return false; 56 57 } 58 };
【leetcode】Search in Rotated Sorted Array II
标签:
原文地址:http://www.cnblogs.com/reachteam/p/4176021.html