一、基本的解题思路:
输入的数组的规律如下
arry[][]={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}},从左到右,从上到下依次递增
数组的二维分别为rows,colums,row=0,column=columns-1从数组的右上角的数开始比较起,当arry[row][column]<num时,row++;当arry[row][column]==num,找到需要查找的num,退出循环,返回true;当arry[row][column]>num时,column--;如此循环,当row>=rows||column<0时,退出循环,返回false.
/**
* 二维数组查找某一个数
*/
public class Solution {
public boolean searchNum(int[][] arry,int num)
{
int rows=arry.length;
int columns=arry[0].length;
if(rows==0)
return false;
boolean result=false;
int row=0;
int column=columns-1;
while(row<rows&&column>0)
{
if (arry[row][column]<num) {
row++;
}
else if(arry[row][column]==num)
{
result=true;
System.out.println(row);
System.out.println(column);
System.out.println(arry[row][column]);
return result;
} else {
column--;
}
}
return result;
}
}