題目:從一個二維數組中查找一個數
數組要求:從左到右,從上到小依次遞增的矩形二維數組
思路:我們從矩陣的右上角開始查找,若該位置的數值小於目標值,列數減一;若數值大於目標值,行數加一,後續重複。
public class Offer07 {
public static void main(String[] args) {
int[][] arr = {
{1, 2, 8, 9},
{2, 4, 9, 12},
{4, 7, 10, 13},
{6, 8, 11, 15}
};
System.out.println(searchNumber(arr, 0));
}
public static boolean searchNumber(int[][] arr, int target) {
//判空
if(arr==null||arr.length==0||arr[0].length==0)return false;
//定義行 row,列column
int row = 0;
int column = arr[0].length-1;
while (row < arr.length && column >= 0) {
int number = arr[row][column];
if (number == target) {
return true;
} else if (target < number) {
column--;
} else {
row++;
}
}
return false;
}
}