leetcode打卡--240. 搜索二维矩阵 II

Posted C_YCBX Py_YYDS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode打卡--240. 搜索二维矩阵 II相关的知识,希望对你有一定的参考价值。

题目

一题三解

直接搜索

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        for (const auto& row: matrix) {
            auto it = lower_bound(row.begin(), row.end(), target);
            if (it != row.end() && *it == target) {
                return true;
            }
        }
        return false;
    }
};

二分查找

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        for (const auto& row: matrix) {
            auto it = lower_bound(row.begin(), row.end(), target);
            if (it != row.end() && *it == target) {
                return true;
            }
        }
        return false;
    }
};

*(重点)二叉搜索树

这种排序的二维数组结构,很明显总能找到一个角度来看,然后实现二叉搜索树的结构,这个就是从右上角看,它就是一个二叉搜索树。

class Solution {
public:
//从右上角看就是一棵二叉搜索树!
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int n = matrix.size(),m = matrix[0].size();
        int i = 0,j = m-1;
        while(i<n&&j>=0){
            if(matrix[i][j]==target)return true;
            if(matrix[i][j]>target){
                j--;
            }else{
                i++;
            }
        }
        return false;
    }
};
  • 我想说golang yyds!
func searchMatrix(matrix [][]int, target int) bool {
    m, n := len(matrix), len(matrix[0])
    x, y := 0, n-1
    for x < m && y >= 0 {
        if matrix[x][y] == target {
            return true
        }
        if matrix[x][y] > target {
            y--
        } else {
            x++
        }
    }
    return false
}

以上是关于leetcode打卡--240. 搜索二维矩阵 II的主要内容,如果未能解决你的问题,请参考以下文章

5-005-(LeetCode- 240) 搜索二维矩阵 II

Leetcode 240.搜索二维矩阵II

leetcode240——搜索二维矩阵(medium)

leetcode240——搜索二维矩阵(medium)

LeetCode Algorithm 240. 搜索二维矩阵 II

[LeetCode] 240. 搜索二维矩阵 II ☆☆☆(二分查找类似)