题目分析
这是一道简单的查找二维矩阵的题目,所以解决这题有一个最简单的解法就是遍历二维数组即可;但是我们应该注意到题目中的每行整数从左到右是按升序排列的,第一个整数大于前一行的最后一个整数,介于此,我们可以想到使用二分查找。

解法1:

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target){for(auto i:matrix){for(auto j:i){if(j==target)return true;}}return false;}
};

解法二:

class Solution {
public:int row, col;pair<int, int> getIndex(int n) {return {n/col, n%col};                //通过这个方式,将一维数组地址转换为二维数组坐标,也是本解法的精华}bool searchMatrix(vector<vector<int>>& matrix, int target) {row = matrix.size(), col = matrix[0].size();int left = 0, right = row*col - 1;while(left <= right) {int mid = (left + right) / 2;auto [i, j] = getIndex(mid);if(matrix[i][j] == target)return true;else if(matrix[i][j] > target)right = mid-1;else if(matrix[i][j] < target)left = mid+1;}return false;}
};作者:AC_OIer
链接:https://leetcode-cn.com/problems/search-a-2d-matrix/solution/gong-shui-san-xie-yi-ti-shuang-jie-er-fe-l0pq/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

leetcode刷题 74.搜索二维矩阵相关推荐

  1. leetcode 74. 搜索二维矩阵(二分)

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:matrix = ...

  2. 力扣算法题—074搜索二维矩阵

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: matrix ...

  3. Leetcode 74. 搜索二维矩阵 (每日一题 20210907)

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性:每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数.示例 1:输入:matrix = [[ ...

  4. 【二分法万能模板】Leecode 74. 搜索二维矩阵——Leecode日常刷题系列

    题目链接:https://leetcode-cn.com/problems/search-a-2d-matrix/submissions/ 题解汇总:https://leetcode-cn.com/p ...

  5. LeetCode 74. 搜索二维矩阵(二分查找)

    1. 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: m ...

  6. 【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 两道题一样的 有序 + 搜索,明摆着二分查找 但是比较懒-选取了题解里的指针做法= = 思路 & 代码 时间复杂度O(m + n) ...

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

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

  8. [leetcode刷题]汇总(二)

    文章目录 二分查找 69 x的平方根 367 有效的完全平方数 33 搜索旋转排序数组(中等) 74 搜索二维矩阵(中等) 153 找到旋转数组中的最小值(中等) 动态规划 斐波拉 62 不同路径(中 ...

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

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

最新文章

  1. 如何设计一款地震高岗一派溪山千古秀的反爬虫?
  2. GetWindowRect和GetClientRect的区别详解
  3. 信息报送不及时整改措施_工商年报如何报送?原来这才是正确打开方式
  4. 探讨Redhat的开源“成功之道”
  5. Linux常用命令和常见问题解决------第一章
  6. HBase读链路分析
  7. ueditor 上传视频丢失src的解决方法
  8. 蚂蚁金服资深技术专家经国:云原生时代微服务的高可用架构设计
  9. 最适合物联网的开源数据库
  10. 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南
  11. javascript TypedArray
  12. mesa3d源代码阅读笔记
  13. APUE实战篇1:在Ubuntu环境搭载apue的环境
  14. 车辆管理设备V系列JTT-808协议简介
  15. 博客留言外链是否有用?
  16. 《安富莱嵌入式周报》第295期:世界杯球员和足球实时跟踪,开源手持矢量网络分析仪,自制柔性电容式传感器,IAR加强对VSCode支持、索尼早期PSX的光驱模拟器
  17. php代码写一串新年祝福,临时保存新年祝福的php+dede
  18. 向 iOS 越狱彻底说再见!
  19. html文件的基本结构包括不包括哪部分,Html基本结构
  20. JavaScript垃圾收集

热门文章

  1. Swift--基本数据类型(一)
  2. 自动化运维之部署Puppet
  3. 应用案例:SequoiaDB+Spark搭建医院临床知识库系统
  4. 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
  5. activeMQ相关配置与相关知识
  6. 如何设置XMind思维导图线条
  7. px, dip, dp,sp使用场景
  8. jQuery快速复习
  9. iOS中的唯一标示符
  10. 【转】回调函数,函数指针与函数对象