Pranav
{ int n = A.length; int l = 0; int r = n-1; while(l<=r) { if(A[l]<=A[r]) { while(l<=r) { int m = (l+r)/2; if(B==A[m]) return m; if(B>A[m]) { l = m+1; }else { r = m-1; } } return -1; } int m = (l+r)/2; if(B==A[m]) return m; if(B>A[r]) { if(A[m]>A[r]) { if(B>A[m]) { l = m+1; }else { r = m-1; } }else { r = m-1; } }else { if(A[m]<A[r]) { if(B>A[m]) { l = m+1; }else { r = m-1; } }else { l = m+1; } } } return -1; }
Leave a Comment