题目:1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 静态不能访问非静态,非静态可以访问静态
- 静态的main方法不能访问非静态的Find方法,所以采用类名.的方式
- 如果将Find方法改为静态的,则可以直接在main方法中使用Find方法
- 创建二维数组的方式:int [ ] [ ] array;
public class T_01_ArrayLookup {
public boolean Find(int target, int [][] array) {
if(array==null||array.length==0||array[0].length==0){
return false;
}
int row = 0;
int col = array[0].length - 1;
while (row < array.length && col > -1) {
if (array[row][col] > target) {
col--;
} else if (array[row][col] == target) {
return true;
} else {
row++;
}
}
return false;
}
}
二维数组
int[][] arr2 = new int[4][3];
int[][] arr = { {2, 5, 6},
{2, 5, 6},
{2, 5, 6},
{2, 5, 6}};
System.out.println(arr.length);
System.out.println(arr[0].length);
System.out.println(arr[1].length);
System.out.println(arr[3].length);
//结果:4,3,3,3
arr.length 字面意思是二维数组的长度,即里面有几个{},反映的是行数
arr[i].length 表示的是数组中每一个{}的长度,反映的是列数