3.二维数组中的查找
在一个二维数组中,每一行元素都按照从左到右递增的顺序排序,每一列元素都按照从上到下递增的顺序排序。实现一个查找功能的函数,函数的输入为二维数组和一个整数,判断数组中是否含有该整数。
example:
| 1 | 3 | 4 | 6 |
| 2 | 4 | 5 | 8 |
| 3 | 6 | 7 | 10|
| 5 | 8 | 9 | 12|
思路
1.二维数组从左上到右下渐大
2.有序序列可以通过比较大小从而判断下一步比较哪个方向的数据
3.若选取右上(6)这个位置开始,目标数大于该位置数则目标数不在同行往下一行;目标数小于该数字则不在同列,往左一列。
public static boolean find(int[][] arr, int target) {
if (arr == null || arr.length == 0)
return false;
int column = arr[0].length;
int row = arr.length;
int i = 0, j = column - 1;
while (i < row && j > 0) {
if (arr[i][j] == target) {
return true;
} else if (arr[i][j] > target) {
j--;
continue;
} else if (arr[i][j] < target) {
i++;
continue;
}
}
return false;
}
总结:
1.找规律