Pranav
unknown
c_cpp
9 months ago
1.1 kB
5
Indexable
{
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;
}Editor is loading...
Leave a Comment