输入一个递增的顺序排序的二维数组和一个整数,判断数组中是否含有该整数
解题思路:
这题的出发点是左下角这个数即a[r][c],和目标数target进行比较,如果比目标数大,则r--,
如果比目标数小,则c++。前提是r >=0并且 c < a[0].length,即数组列的长度。
package bianchengti; /* * 在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。请完成一个函数, * 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 */ public class DoubleArrayFindValue { public static boolean getResult(int target, int [][] array) { int c=0; int r=array.length-1; while(c <array[0].length && r >= 0){ if(array[r][c] > target){ r--; }else if(array[r][c] < target){ c++; }else{ return true; } } return false; } public static void print(int [][]src) { for(int i=0; i<src.length; i++){ for(int j=0; j<src[i].length; j++){ System.out.print(src[i][j]+" "); } System.out.println(); } } public static void main(String[] args) { // TODO Auto-generated method stub //定义二维数组 int [][]a={{1,3,5,6},{7,9,10,12},{15,16,18,20}}; print(a); System.err.print(getResult(11, a)); } }
追梦的脚步,永不停息