题目:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否存在该整数。
解答:
1 public class Solution { 2 3 public static void main(String[] args) { 4 int[][] arr = { 5 {1,2,8,9}, 6 {2,4,9,12}, 7 {4,7,10,13}, 8 {6,8,11,15} 9 }; 10 11 System.out.println(search(arr, 7)); 12 } 13 14 private static boolean search(int[][] arr, int value) { 15 int rows = arr.length; 16 int cols = arr[0].length; 17 18 int i = 0; 19 int j = cols-1; 20 21 while(i <= rows-1 && j >= 0) { 22 if(arr[i][j] == value) { 23 return true; 24 } 25 26 if(arr[i][j] > value) { 27 j--; 28 } else { 29 i++; 30 } 31 } 32 33 return false; 34 35 } 36 }