剑指 Offer 04. 二维数组中的查找

2021-03-11 15:30

阅读:266

标签:col   搜索   左移   坐标   暴力   rgba   lse   class   while   

//暴力法 时间复杂度 O(m * n)
//根据排序的规律观察,得到类似2叉搜索树的解法 O(m + n)
class Solution {
    public boolean findNumberIn2DArray(int[][] matrix, int target) {
        //判空
        if(matrix == null || matrix.length == 0) {
            return false;
        }
        //找一个右上角 或者 左下角的元素 , 我找右上角,定义它的坐标
        int i = 0,j = matrix[0].length - 1;
        //边界判断
        while(i = 0){
            //右上角的元素 小于 目标值,要下移
            if(matrix[i][j]  target){
                i++;
                //右上角的元素 大于 目标值,要左移
            } else if(matrix[i][j] > target){
                    j--;
            //相等,则找到目标元素,返回        
            } else{
                return true;
            }
        }
        //没找到,返回false
        return false;
    }
}

 

剑指 Offer 04. 二维数组中的查找

标签:col   搜索   左移   坐标   暴力   rgba   lse   class   while   

原文地址:https://www.cnblogs.com/peanut-zh/p/14124271.html


评论


亲,登录后才可以留言!