剑指offer之 二维数组的查找
package Problem3;
public class Find {
/*
* 题目描述:二维数组中的查找
* 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排序。
* 完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否包含该整数
*
*/
public static boolean find(int arr[][],int keyNumber){
//从二维数组的右上角开始选取与keyNumber比较的整数
//column的变化:arr[0].length-1-->0;
//row的变化:0-->arr.length;
int column=arr[0].length-1;
int row=0;
while(column>=0&&row<arr.length){
if(arr[row][column]==keyNumber){
return true;
}
else if(arr[row][column]>keyNumber){
column--;
}
else {
row++;
}
}
return false;
}