美文网首页
剑指 Offer 第4题:二维数组中的查找

剑指 Offer 第4题:二维数组中的查找

作者: 放开那个BUG | 来源:发表于2022-05-10 23:12 被阅读0次

    1、前言

    题目描述

    2、思路

    如果使用二分查找一行行或者一列列查找,好像效率也还可以。但是最好的方式是利用矩阵的特性,找到一个点不同方向是递增和递减的点,比如右上角或者左下角。

    比如选右上角,如果 matrix[row][col] > target,则直接 col--;否则 row++。直到找到这个数。

    3、代码

    class Solution {
        public boolean findNumberIn2DArray(int[][] matrix, int target) {
            if(matrix == null || matrix.length == 0 || matrix[0].length == 0){
                return false;
            }
            int row = 0, col = matrix[0].length - 1;
            while(row < matrix.length && col >= 0){
                if(matrix[row][col] == target){
                    return true;
                }else if(matrix[row][col] > target){
                    col--;
                }else{
                    row++;
                }
            }
            return false;
        }
    }
    

    相关文章

      网友评论

          本文标题:剑指 Offer 第4题:二维数组中的查找

          本文链接:https://www.haomeiwen.com/subject/rxalyrtx.html