[编程题] 二维数组中的查找

4、二维数组中的查找

image-20200619205335703

带行列中止验证的比较(自写)

class Solution {
    public boolean findNumberIn2DArray(int[][] matrix, int target) {
        for (int i = 0; i < matrix.length; i++) {

            //列中止验证:如果这列上的第一个元素都已经大于target了,也就不比较了
            if(matrix[i].length!=0 && matrix[i][0]>target){
                return false;//这时候说明全局都找不到了
            }
            
            //行内比较
            for (int j = 0; j < matrix[i].length; j++) {
                //行中止验证 如果此行比较的元素已经明显大于target,就不比较这行了
                if (matrix[i][j]>target){
                    break;
                }
                if (target==matrix[i][j]){
                    return true;
                }
            }
        }
        //跳出双for了就是没找到了
        return false;
    }
}

作者:beibicoder666
链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/solution/dai-zhong-zhi-yan-zheng-de-bi-jiao-by-beibicoder66/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/jiyongjia/p/13191855.html