import java.util.Scanner;
public class Interview4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[][]=new int[4][4];
Scanner sc=new Scanner(System.in);
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
a[i][j]=sc.nextInt();
}
}
int n=sc.nextInt();
System.out.println(findNum(a,n));
}
/**
* 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,
* 每一列都按照从上到下递增的顺序排序。请完成一个函数,
* 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
* 思路:找到右上角的数,如果比右上角的数小,那么去掉最后一列,以此类推
*/
public static boolean findNum(int a[][],int n){
//判断数组的合法性
if(a==null){return false;}
int col=a[0].length-1;
int row=0;
while(row<a.length&&col>=0){
if(a[row][col]==n){
return true;
}else if(a[row][col]>n){
col--;
}else
row++;
}
return false;
}
}
<剑指offer 面试题4> 二维数组中的查找(Java实现)
最新推荐文章于 2020-08-16 00:41:12 发布