LeetCode 240. 搜索二维矩阵
因为矩阵的行和列是排序的(分别从左到右和从上到下),所以在查看任何特定值时,我们可以修剪O(m)O(m)或O(n)O(n)元素。
算法:
首先,我们初始化一个指向矩阵左下角的 (row,col)(row,col) 指针。然后,直到找到目标并返回 true(或者指针指向矩阵维度之外的 (row,col)(row,col) 为止,我们执行以下操作:如果当前指向的值大于目标值,则可以 “向上” 移动一行。 否则,如果当前指向的值小于目标值,则可以移动一列。不难理解为什么这样做永远不会删减正确的答案;因为行是从左到右排序的,所以我们知道当前值右侧的每个值都较大。 因此,如果当前值已经大于目标值,我们知道它右边的每个值会比较大。也可以对列进行非常类似的论证,因此这种搜索方式将始终在矩阵中找到目标(如果存在)。
public class Solution
{public bool SearchMatrix(int[,] matrix, int target){int maxRow = matrix.GetLength(0);int maxCol = matrix.GetLength(1);if(maxRow == 0 || maxCol == 0)return false;int value = 0;int row = maxRow - 1;int col = 0;while(row >= 0 && col <= maxCol - 1){value = matrix[row,col];if(value < target)col++;else if(value > target)row--;elsereturn true;}return false; }
}
LeetCode 240. 搜索二维矩阵相关推荐
- LeetCode 240. 搜索二维矩阵 II(二分查找 分治)
文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...
- Leetcode 240.搜索二维矩阵II (每日一题 20210727 同一题)
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性:每行的元素从左到右升序排列. 每列的元素从上到下升序排列.示例 1:输入:matrix = ...
- leetcode 240. 搜索二维矩阵 II
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 matrix ...
- [leetcode]240. 搜索二维矩阵 II
行.列二分: class Solution {public:bool binsearch(vector<vector<int>>& matrix, int target ...
- 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)
[LeetCode][HOT]240. 搜索二维矩阵 II 文章目录 [LeetCode][HOT]240. 搜索二维矩阵 II package hot;public class Solution24 ...
- LeetCode Algorithm 240. 搜索二维矩阵 II
240. 搜索二维矩阵 II Ideas 这题我记得在左神算法初级班里面有. 主要的思想就是定义两个指针row_index和col_index,从右上角开始逐个搜索. 如果matrix[row_ind ...
- leetcode 74. 搜索二维矩阵(二分)
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:matrix = ...
- 【leetcode】搜索二维矩阵 II
题目: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 ma ...
- leetcode 240. Search a 2D Matrix II | 240. 搜索二维矩阵 II(Java)
题目 https://leetcode.com/problems/search-a-2d-matrix-ii/ 题解 方法1 思路类似于 leetcode 200. Number of Islands ...
最新文章
- geoserver 通过代码实现发布地图服务
- android 拖动数字选择,拖放android 3.x导致illegalStateException之后的小数字拖动
- ubuntu12.04安装libgl1-mesa-glx:i386问题解决办法
- 1.3.2 中断和异常(内中断和外中断、中断处理过程)
- linux 外壳的概念,Linux 与 Linux 发行版的一些概念
- seo关键词互点软件报价_舟山seo关键词优化软件
- linux启动器编辑,linux下建立启动器
- 解决IIS无法启动w3svc
- 论文查重的软件有哪些?
- 台式计算机加固态硬盘,台式电脑加固态硬盘教程_固态硬盘台式机安装方法-win7之家...
- android 常用模块,超实用的几款Xposed模块,安卓发烧必备
- 台湾J2ME专家王森北京讲座---掌上开发专业研讨
- postgresql 中文azw3_制作mobi格式的PostgreSQL文档
- 企业网站常见误区-金瑞帆高端建站
- 设备驱动安装不上怎么办?
- android 服务开机启动慢,Android App启动慢原因
- 硕士毕业论文应该如何梳理论文框架?
- B2B电商平台怎么解决大额订单在线支付问题?
- 公鸡3块钱1只,母鸡5块钱1只,小鸡1块钱3只,用100块买100只鸡,一共多少种买法,分别是什么?
- 社区公共安全治理探索:达观舆情信息智能处理解决方案
热门文章
- linux clone线程,如何在Linux上使用clone()创建真正的线程?
- oracle shrink space compact,oracle 学习笔记 Shrink 参数 compact
- [蓝桥杯][2017年第八届真题]k倍区间(数学+思维)
- Aerodynamic CodeForces - 1300D(计算几何判断是否为中心对称图形)
- python2中可以使用print()函数吗_在Python2.x中使用print()(函数版本)
- 【sklearn学习】特征选择
- 小老板,我300M的网,网速很慢怎么办?
- 疯子的算法总结(一) 位运算(快速幂、快速乘)
- [深度学习] 自然语言处理 --- Self-Attention(二) 动画与代码演示
- 把学单片机过程中遇到的问题与大家分享