面試題04. 二維數組中的查找

題目:

面試題04. 二維數組中的查找
同:240. 搜索二維矩陣 II
在這裏插入圖片描述

題解:

1. 題解一:

在這裏插入圖片描述

2. 題解二:

在這裏插入圖片描述

代碼:

1. 代碼一:

/**
 * 面試題04
 */
public class 面試題04 {

    // 解法1:
    public static boolean findNumberIn2DArray(int[][] matrix, int target) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[0].length; j++) {
                if (matrix[i][j] == target) {
                    return true;
                }
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int matrix[][] = { { 1, 4, 7, 11, 15 }, { 2, 5, 8, 12, 19 }, { 3, 6, 9, 16, 22 }, { 10, 13, 14, 17, 24 },
                { 18, 21, 23, 26, 30 } };
        int target1 = 5;
        int target2 = 20;
        boolean res1 = findNumberIn2DArray(matrix, target1);
        boolean res2 = findNumberIn2DArray(matrix, target2);
        System.out.println(res1 + " " + res2);
    }
}

2. 代碼二:

/**
 * 面試題04
 */
public class 面試題04 {

    // 解法2:
    public static boolean findNumberIn2DArray(int[][] matrix, int target) {
        if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
            return false;
        }
        int i = 0;
        int j = matrix[0].length - 1;
        while (i < matrix.length && j >= 0) {
            if (matrix[i][j] == target) {
                return true;
            } else if (matrix[i][j] < target) {
                i++;
            } else if (matrix[i][j] > target) {
                j--;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int matrix[][] = { { 1, 4, 7, 11, 15 }, { 2, 5, 8, 12, 19 }, { 3, 6, 9, 16, 22 }, { 10, 13, 14, 17, 24 },
                { 18, 21, 23, 26, 30 } };
        int target1 = 5;
        int target2 = 20;
        boolean res1 = findNumberIn2DArray(matrix, target1);
        boolean res2 = findNumberIn2DArray(matrix, target2);
        System.out.println(res1 + " " + res2);
    }
}

參考:

  1. 面試題04. 二維數組中的查找
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章