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

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

示例:

现有矩阵 matrix 如下:

[[1,   4,  7, 11, 15],[2,   5,  8, 12, 19],[3,   6,  9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]
]

给定 target = 5,返回 true

给定 target = 20,返回 false

方法:

  • 左下角的元素是这一行中最小的元素,同时又是这一列中最大的元素。比较左下角元素和目标:

    • 若左下角元素等于目标,则找到
    • 若左下角元素大于目标,则目标不可能存在于当前矩阵的最后一行,问题规模可以减小为在去掉最后一行的子矩阵中寻找目标
    • 若左下角元素小于目标,则目标不可能存在于当前矩阵的第一列,问题规模可以减小为在去掉第一列的子矩阵中寻找目标
  • 若最后矩阵减小为空,则说明不存在

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {if(matrix.empty())return false;int row = matrix.size();int col = matrix[0].size();int i=row-1; int j=0;while(i>=0 && j<col){if(matrix[i][j]==target)return true;else if(matrix[i][j]>target)i--;elsej++;}return false;}
};

搜索二维矩阵 II—leetcode240相关推荐

  1. 利用可达矩阵判断连通性_leetcode240. 搜索二维矩阵 II

    leetcode240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上 ...

  2. LeetCode Algorithm 240. 搜索二维矩阵 II

    240. 搜索二维矩阵 II Ideas 这题我记得在左神算法初级班里面有. 主要的思想就是定义两个指针row_index和col_index,从右上角开始逐个搜索. 如果matrix[row_ind ...

  3. 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)

    [LeetCode][HOT]240. 搜索二维矩阵 II 文章目录 [LeetCode][HOT]240. 搜索二维矩阵 II package hot;public class Solution24 ...

  4. Java 搜索二维矩阵 II

    搜索二维矩阵 II 中等 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示 ...

  5. LeetCode 07: T48. 旋转图像 (中等); T54. 螺旋矩阵(中等); T240. 搜索二维矩阵 II (中等)

    文章目录 T19: 48. 旋转图像 (中等) 思路 解法 1: 新增数组 解法 2: 原地旋转 T20: 54. 螺旋矩阵(中等) 思路 解法: 到边界换方向 T21: 240. 搜索二维矩阵 II ...

  6. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  7. 搜索二维矩阵II(分治法和蛇行)

    问题来源:力扣算法面试汇总 问题描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序 ...

  8. Leecode240. 搜索二维矩阵 II——Leecode每日一题系列

    我是小张同学,立志用更简洁的代码做更高效的表达 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素 ...

  9. 2019-03-11-算法-进化(搜索二维矩阵II)

    题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列 每列的元素从上到下升序排列 示例: 现有矩阵 mat ...

最新文章

  1. 泡泡玛特,走出“盲盒”?
  2. mac GitHub上面如何在原有仓库的基础上增加文件呢?
  3. sip-selvet 环境搭建
  4. oracle为什么要创建数据库,手动创建Oracle数据库之前因后果
  5. alchemy php,Flask SQLAlchemy
  6. 为什么要使用 Node.js
  7. C#session共享+redis_Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
  8. 速成pytorch学习——3天自动微分机制
  9. 使用Perl进行网页数据抓取[初学者简明版]
  10. python网络编程初级
  11. HTML标签和属性大全
  12. 【Tensorflow】Windows下基于Anaconda的Tensorflow环境配置
  13. 查看javajdk版本
  14. DART语言学习整理
  15. 一篇超频菜鸟必看的基础知识大全!
  16. 以网易云为例,使用审查元素(开发者选项)获取音乐资源
  17. AM5728 eHRPWM 驱动和中断设计随笔
  18. android ota权限,Android手机Root后不能接收OTA?
  19. python中getattr()和setattr()的使用
  20. simpletransformers的 single sentence classification和sentence pair classification

热门文章

  1. jhipster 配置 mysql_java – 将jhipster后端和前端分成两个项目?
  2. 【2012百度之星/初赛上】C:集合的交与并
  3. [转]php-fpm配置具体解释
  4. POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
  5. 屏蔽Xcode 8“烦人”的日志输出
  6. 航旅事业群面试(li)
  7. 查看wcf服务中方法测试客户端
  8. Java WEB之Servlet学习之路(一)一个最简单的Servlet应用
  9. 如何解决复杂条件下的程序流的控制问题?
  10. String案例 练习: 将一个字符串进行反转