1. 程式人生 > >劍指offer-2(二維數組中的查找)

劍指offer-2(二維數組中的查找)

二維數組中的查找 這樣的 pre 完成 return 題目 nbsp urn boolean

題目:

?在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。

思路:

首先呢,我們拿二維數組最右上角的那個數與要查找的數進行比較,如果相等,直接返回;如果這個數比要查找的數大,行號不變,列號減一;如果這個數比要查找的數小,列號不變,行號加一。

代碼如下:

public static boolean select(int[][] arr, int num) {
        if (arr == null || arr.length < 1 || arr[0].length < 1) {
            
return false; } int rows = arr.length;// 數組的行數 int cols = arr[0].length;// 數組的列數 // 右上角數的行和列 int row = 0; int col = cols - 1; while (row < rows && col >= 0) { if (arr[row][col] == num) { return true; }
else if (arr[row][col] > num) { col--; } else { row++; } } return false; }

註意代碼的健壯性,對空或數組長度的判斷。

劍指offer-2(二維數組中的查找)