【算法详解】力扣240.搜索二维矩阵II

这篇具有很好参考价值的文章主要介绍了【算法详解】力扣240.搜索二维矩阵II。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 题目描述

力扣链接:力扣240.搜索二维矩阵II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。

二、思路分析

题目提到该矩阵是从左到右,从上到下递增的,那么我们就要利用这个性质,从矩阵的某一个角落出发,每一次往一个方向移动,直到找到目标值。

对于这道题,可以从右上角或左下角出发,因为这两个角落的两个方向是不同的单调方向,如果从左上角或右下角出发,那么我们就没办法判断下一步到底往哪个方向移动。

以右上角出发,如果当前值小于目标值,那么就往下走,反之就往左走。文章来源地址https://www.toymoban.com/news/detail-810710.html

三、C++题解

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        // 从右上角开始遍历,每次只能往左或往下
        int m = matrix.size(), n = matrix[0].size();
        int i = 0, j = n - 1;

        while (i < m && j >= 0) {
            if (matrix[i][j] > target) {
                --j;
            }
            else if (matrix[i][j] < target){
                ++i;
            }
            else {
                return true;
            }
        }

        return false;
    }
};

到了这里,关于【算法详解】力扣240.搜索二维矩阵II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode 热题 100(四):48. 旋转图像、240. 搜索二维矩阵 II、234. 回文链表

    题目要求:就是一个顺时针的旋转过程。  思路:观察矩阵,得出翻转前第i行的第J个元素  等于  翻转后倒数第i列的第J个元素,举例说明,第1行第2个元素为“2”,翻转后到了 倒数第1列的第2个元素。说白了只需要针对翻转前的第i行和翻转后的倒数第i列 代码: 题目要求

    2024年02月11日
    浏览(24)
  • 240. 搜索二维矩阵 II

    利用矩阵中的单调性进行搜索。

    2024年02月16日
    浏览(26)
  • 【LeetCode】240.搜索二维矩阵Ⅱ

    编写一个高效的算法来搜索  m  x  n  矩阵  matrix  中的一个目标值  target  。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 示例 2: 提示: m == matrix.length n == matrix[i].length 1 = n, m = 300 -10^9 = matrix[i][j] = 10^9 每行的所有元素

    2024年02月12日
    浏览(27)
  • LeetCode热题100 240.搜索二维矩阵||

    编写一个高效的算法来搜索 m*n 矩阵 matrix  中的一个目标值  target  。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例1: 示例 2: 提示: m == matrix.length n == matrix[i].length 1 = n, m = 300 -10^9 = matrix[i][j] = 10^9 每行的所有元素从左到右升

    2024年02月06日
    浏览(29)
  • leetcode—搜索二维矩阵II

    编写一个高效的算法来搜索  m  x  n  矩阵  matrix  中的一个目标值  target  。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 暴力求解 对矩阵的每一行采用二分查找进行查找 Z字型查找 从矩阵的右上角(0,n-1)进行搜索 具

    2024年01月17日
    浏览(31)
  • 【leetcode100-021】【矩阵】搜索二维矩阵 II

    【题干】 编写一个高效的算法来搜索  m  x  n  矩阵  matrix  中的一个目标值  target  。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 【思路】 以右上角为起点斜着看这个矩阵,会发现,这是一颗二叉搜索树。 那么我们就从右上角

    2024年02月02日
    浏览(24)
  • 【LeetCode热题100】打卡第42天:滑动窗口最大值&搜索二维矩阵II

    大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。在此专栏中,我们将会涵盖各种

    2024年02月10日
    浏览(35)
  • 【算法】在二维不单调的矩阵上二分查找——力扣1901. 寻找峰值 II

    1901. 寻找峰值 II 给定一个从0开始编号的m x n矩阵 mat ,其中任意两个相邻格子的值都不相同。峰值是指那些严格大于其相邻格子(上、下、左、右)的元素。需要找出任意一个峰值 mat[i][j] 并返回其位置 [i, j] 。 示例 1: 示例 2: 步骤一:列转行 首先,将矩阵的列转换为行,表示为

    2024年02月03日
    浏览(40)
  • 算法leetcode|74. 搜索二维矩阵(rust重拳出击)

    给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 m == matrix.length n == matrix[i].length 1 = m, n = 100 -10 4 = matrix[i][j],

    2024年02月11日
    浏览(24)
  • 搜索二维矩阵 II

    搜索二维矩阵 II 矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 最初想到使用深度优先遍历+剪枝实现,但是运行后超出时间限制了 可以直接遍历整个矩阵查找,虽然不超时但是耗时毕竟高 从右上角开始遍历矩阵,也就是x最初为0,y最初

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包