题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目连接
示例1
输入
复制
7,
[[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]]
返回值
true
代码:
public class Solution {
public boolean Find(int target, int[][] array) {
if (array == null || array.length == 0 || array[0].length == 0) {
return false;
}
for (int i = array.length - 1, j = 0; i >= 0 && j < array[0].length; ) {
if (array[i][j] > target) {
i--;
} else if (array[i][j] < target) {
j++;
} else {
return true;
}
}
return false;
}
}
解题思路:
从二维数组的左下角元素开始遍历,如果目标值大于该元素,则向右移动;如果目标值小于该元素,则向上移动。