leetcode刷题 74.搜索二维矩阵
题目分析
这是一道简单的查找二维矩阵的题目,所以解决这题有一个最简单的解法就是遍历二维数组即可;但是我们应该注意到题目中的每行整数从左到右是按升序排列的,第一个整数大于前一行的最后一个整数,介于此,我们可以想到使用二分查找。
解法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.搜索二维矩阵相关推荐
- leetcode 74. 搜索二维矩阵(二分)
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:matrix = ...
- 力扣算法题—074搜索二维矩阵
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: matrix ...
- Leetcode 74. 搜索二维矩阵 (每日一题 20210907)
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性:每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数.示例 1:输入:matrix = [[ ...
- 【二分法万能模板】Leecode 74. 搜索二维矩阵——Leecode日常刷题系列
题目链接:https://leetcode-cn.com/problems/search-a-2d-matrix/submissions/ 题解汇总:https://leetcode-cn.com/p ...
- LeetCode 74. 搜索二维矩阵(二分查找)
1. 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: m ...
- 【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)
文章目录 题目描述 思路 & 代码 更新版 题目描述 两道题一样的 有序 + 搜索,明摆着二分查找 但是比较懒-选取了题解里的指针做法= = 思路 & 代码 时间复杂度O(m + n) ...
- LeetCode 240. 搜索二维矩阵 II(二分查找 分治)
文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...
- [leetcode刷题]汇总(二)
文章目录 二分查找 69 x的平方根 367 有效的完全平方数 33 搜索旋转排序数组(中等) 74 搜索二维矩阵(中等) 153 找到旋转数组中的最小值(中等) 动态规划 斐波拉 62 不同路径(中 ...
- LeetCode Algorithm 240. 搜索二维矩阵 II
240. 搜索二维矩阵 II Ideas 这题我记得在左神算法初级班里面有. 主要的思想就是定义两个指针row_index和col_index,从右上角开始逐个搜索. 如果matrix[row_ind ...
最新文章
- 如何设计一款地震高岗一派溪山千古秀的反爬虫?
- GetWindowRect和GetClientRect的区别详解
- 信息报送不及时整改措施_工商年报如何报送?原来这才是正确打开方式
- 探讨Redhat的开源“成功之道”
- Linux常用命令和常见问题解决------第一章
- HBase读链路分析
- ueditor 上传视频丢失src的解决方法
- 蚂蚁金服资深技术专家经国:云原生时代微服务的高可用架构设计
- 最适合物联网的开源数据库
- 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南
- javascript TypedArray
- mesa3d源代码阅读笔记
- APUE实战篇1:在Ubuntu环境搭载apue的环境
- 车辆管理设备V系列JTT-808协议简介
- 博客留言外链是否有用?
- 《安富莱嵌入式周报》第295期:世界杯球员和足球实时跟踪,开源手持矢量网络分析仪,自制柔性电容式传感器,IAR加强对VSCode支持、索尼早期PSX的光驱模拟器
- php代码写一串新年祝福,临时保存新年祝福的php+dede
- 向 iOS 越狱彻底说再见!
- html文件的基本结构包括不包括哪部分,Html基本结构
- JavaScript垃圾收集