给一个int 数组A[],和一个X,已知A中各元素是升序排列,要求返回X在A中的位置。A可能狂大,注意性能。
class Solution {
int solution(int[] A, int X) {if (A == null) return -1;
int N = A.length;
if (N == 0) {
return -1;
}
int l = 0;
int r = N - 1;
while (l < r) {
int m = (l + r) / 2;
if (A[m] > X) {
r = m - 1;
} else if(l < m){
l = m;
} else break;
}
if (A[l] == X) {
return l;
}
return -1;
}
}
这是我的代码,能帮我看看哪里出错了么?