在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺
序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一
个二维数组和一个整数,判断数组中是否含有该整数。
package z_jzoffer.jz1; /** * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数, * 判断数组中是否含有该整数 * * 1 2 3 4 * 5 6 7 8 * 9 10 11 12 * 13 14 15 16 */ // public class Solution { public static void main(String[] args) { int[][] array = {{1,2,3,5},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; Solution s = new Solution(); boolean find = s.Find(17, array); System.out.println(find); } public boolean Find(int target, int [][] array) { return FindStep(0,0,target, array); } public boolean FindStep(int i,int j,int target, int [][] array) { if(i>array.length-1||j>array[0].length-1){ return false; } if(target==array[i][j]){ return true; }else if(target<array[i][j]){ return false; }else{ if(FindStep(i+1,j,target, array)){ return true; }else{ return FindStep(i,j+1,target, array); } } } }