题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
从右上角或左下角开始。
比如从右上角开始:
- 如果本值大于 target,可以排除第一行,因为第一行所有值都小于本值。只用在除第一行构成的矩阵中寻找 target;
- 如果本值小于 target,可以排除第一列,因为第一列所有值都大于本值。只用在除第一列构成的矩阵中寻找 target;
- 如果本值等于 target,返回 true。
public class Solution {
public boolean Find(int target, int [][] array) {
if (array == null || array.length == 0)
return false;
int row = 0;
int col = array[0].length-1;
while (row < array.length && col >= 0) {
if (array[row][col] > target)
col--;
else if (array[row][col] < target)
row++;
else
return true;
}
return false;
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于