剑指Offer-在二维数组中查找目标数字

在二维数组中查找目标数字

题目

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数:
输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路

因为从左到右从上到下都是递增的所以找一个角,左上角或者右下角。
找左下角就是比目标大往右移动一行,小的话就是往上移动以上。直到找到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;
    }
}
0%