牛客网上做一道编程题,一直报出数组越界问题,但是我一直没看出来哪里越界了
求助攻
我的思路是 判断目标数是否在当前行范围中,若是,采用二分法咋找,若不是,跳到下一行
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; } }
付费偷看金额在0.1-10元之间
size 可能为 0
一周热门 更多>