在一个二维数组中,每一行从左到右 递增,从上到下递增,给出一个数字,判断是否存在
剑指offer 解法 : 可以试图从数组右上角出发。如果右上角数字大于给出数字,那么右上角数字所在列可以排除,如果小于,所在的行即可被排除,如此即可
public class text{
public static void main(String args[]) {
int [][] x=new int [][]
{{1,2,8,9},{4,7,10,13}};
int xx=1;
int yy =3;
findit(x,xx,yy,7);
}
//如果右上角数字大于给出数字,那么右上角数字所在列可以排除,如果小于,所在的行即可被排除,如此即可
public static void findit(int x[][],int row ,int colum ,int emm) {//行,列
while(row>0&&colum>0) {
if(emm==x[row][colum]) {
System.out.println( "find it"+ x[row][colum]);
break;
}
else if(emm>x[row][colum]) {
row--;
}
else {
colum--;
}
}
}
结果如下