美文网首页
每天一道算法题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