在二维数组中查找目标数字
题目
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数:
输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
因为从左到右从上到下都是递增的所以找一个角,左上角或者右下角。
找左下角就是比目标大往右移动一行,小的话就是往上移动以上。直到找到target。
代码
public class FindIn2DArray_1 {
public boolean find(int val, int[][] nums){
int len = nums.length-1;
int i=0;
while (len>0&&i<nums[0].length){
if (nums[len][i]>val){
len--;
}else if (nums[len][i]<val){
i++;
}else {
return true;
}
}
return false;
}
}