数组要求:从左到右,从上到小依次递增的矩形二维数组 思路:我们从矩阵的右上角开始查找,若该位置的数值小于目标值,列数减一;若数值大于目标值,行数加一,后续重复。
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; } }