二维数组的查找 数组越界问题
牛客网上做一道编程题,一直报出数组越界问题,但是我一直没看出来哪里越界了
求助攻
我的思路是 判断目标数是否在当前行范围中,若是,采用二分法咋找,若不是,跳到下一行
public class Solution { public boolean Find(int [][] array,int target) {
if(array==null)
return false;
int n = array.length;
for (int i = 0; i < n; i++) {
if (array[i] == null)
return false;
int size = array[i].length;
if (target <= array[i][size - 1] && target >= array[i][0]) {
int s = 0;
int e = size - 1;
while (s <= e) {
int m = (s + e) / 2;
if (target < array[i][m]) {
e = m - 1;
} else if (target > array[i][m]) {
s = m + 1;
} else {
return true;
}
}
}
}
return false;
}
}
回答:
target <= array[i][size - 1]
size 可能为 0
以上是 二维数组的查找 数组越界问题 的全部内容, 来源链接: utcz.com/p/171726.html