二维数组的查找 数组越界问题

牛客网上做一道编程题,一直报出数组越界问题,但是我一直没看出来哪里越界了

求助攻

https://img.mukewang.com/5cc152c60001d3ea08000357.jpg

https://img4.mukewang.com/5cc152c70001b57603700418.jpg

我的思路是 判断目标数是否在当前行范围中,若是,采用二分法咋找,若不是,跳到下一行

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;

    }

}


喵喵时光机
浏览 423回答 1
1回答

杨魅力

target&nbsp;<=&nbsp;array[i][size&nbsp;-&nbsp;1]size 可能为 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java