美文网首页
LeetCode 力扣 74. 搜索二维矩阵

LeetCode 力扣 74. 搜索二维矩阵

作者: windliang | 来源:发表于2020-02-21 10:11 被阅读0次

    题目描述(中等难度)

    判断一个矩阵中是否存在某个数,矩阵是有序的。

    解法一 二分法

    看到了有序序列,啥都不用想直接二分,只需要考虑到怎么把二分时候的下标转换为矩阵的行、列下标就可以了,很简单,用除法和求余就够了。

    public boolean searchMatrix(int[][] matrix, int target) {
        int rows = matrix.length;
        if (rows == 0) {
            return false;
        }
        int cols = matrix[0].length;
        int left = 0;
        int right = rows * cols - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            int temp = matrix[mid / cols][mid % cols];
            if (temp == target) {
                return true;
            } else if (temp < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        return false;
    }
    

    时间复杂度:O ( log ( n ) )。

    空间复杂度:O ( 1 )。

    这道题的二分法,比较简单,大家可以看下33题,相信对二分法会有一个更深刻的理解。

    更多详细通俗题解详见 leetcode.wang

    相关文章

      网友评论

          本文标题:LeetCode 力扣 74. 搜索二维矩阵

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