码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-12-17 12:41:42      阅读:1      评论:0      收藏:0      [点我收藏+]

标签: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 < matrix.length && j >= 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!