美文网首页
每天一道算法题10

每天一道算法题10

作者: 雨打空城 | 来源:发表于2022-01-22 22:56 被阅读0次

    【二维有序数组找num】
    在行也有序,列也有序的二维数组中,找num,找到返回true,否则返回false。
    解答:这道题的关键是二维数组行也有序,列也有序,那么可以从右上角或者左下角开始遍历,因为当该值比num大,那么同一行往左遍历,如果
    该值比num小,则往下遍历,如果数组越界,则返回false

    public static boolean f(int[][] arr, int num) {
        int row = arr.length;
        int col = arr[0].length;
    
        for (int i = 0; i < row; ) {
            for (int j = col - 1; j >= 0; ) {
                if (arr[i][j] > num) {
                    j--;
                } else if (arr[i][j] < num) {
                    i++;
                } else {
                    return true;
                }
            }
        }
        return false;
    }
    

    相关文章

      网友评论

          本文标题:每天一道算法题10

          本文链接:https://www.haomeiwen.com/subject/ujvphrtx.html