240. 搜索二维矩阵 II

Ideas

这题我记得在左神算法初级班里面有。

主要的思想就是定义两个指针row_indexcol_index,从右上角开始逐个搜索。

如果matrix[row_index][col_index] < target,说明当前遍历的元素比较小,需要往下一行去搜索。

如果matrix[row_index][col_index] > target,说明当前遍历的元素比较大,需要往前一列去搜索。

如果matrix[row_index][col_index] == target,说明找到了,直接返回True。

最后如果两个指针越界了那就说明target不在matrix中,返回False。

为什么从右上角开始逐个搜索而不是从左上角开始搜索呢?

假如从左上角开始搜索,因为matrix[0][0]位置的元素是最小的,所以如果matrix[row_index][col_index] < target,那么到底是往下一列走还是往下一行走呢,不好确定,所以从右上角开始搜索。

Code

Python

from typing import Listclass Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:rows, cols = len(matrix), len(matrix[0])row_index, col_index = 0, cols - 1while row_index < rows and col_index > -1:if matrix[row_index][col_index] < target:row_index += 1elif matrix[row_index][col_index] > target:col_index -= 1else:return Truereturn False

LeetCode Algorithm 240. 搜索二维矩阵 II相关推荐

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

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

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

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

  3. 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 ...

  4. Leetcode 240.搜索二维矩阵II (每日一题 20210727 同一题)

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

  5. leetcode 240. 搜索二维矩阵 II

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

  6. [leetcode]240. 搜索二维矩阵 II

    行.列二分: class Solution {public:bool binsearch(vector<vector<int>>& matrix, int target ...

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

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

  8. 240. 搜索二维矩阵 II

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

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

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

最新文章

  1. 我眼里的几种失败的人生
  2. python学习笔记 --- print (输出到文件 file)
  3. 什么样的域名更利于优化?
  4. dataframe 排序_如何对Pandas DataFrame进行自定义排序
  5. 课程设计旅游景点咨询系统
  6. c语言怎样得到函数内参数的值_C语言零基础入门—函数01
  7. 企业标准化产线建设_机加生产线:标准化管理.ppt
  8. php 聚合广告平台,带统计功能的广告管理系统PHP源码 多维度投放策略 多种风格后台...
  9. 练习题︱豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)
  10. Html制作知识库管理系统,知识库管理系统(源码+数据)
  11. 在這個神奇的國度找個正常點兒的DNS都很困難
  12. 漫画安全HIDS、EDR、NDR、XDR
  13. 冲突处理方法----分离链接法
  14. 原生js的JSONP跨域请求
  15. 【参赛作品29】基于openGauss数据库设计人力资源管理系统实验
  16. 性能猛兽野火STM32H743 V2开发板跑Linux 5.10,分数爆炸1836.884644
  17. ImGo Golang 图片处理库
  18. python比java好学吗-java为什么比python快?
  19. UIC564-2 附录7 – 通过氧指数判定材料的阻燃防火性能
  20. 我的英文写作学习之旅:100日入门+后期靠积累

热门文章

  1. ssh终端远程登陆主机命令--笔记
  2. 上传文件input(type=file)美化。
  3. VR开发中性能问题—OculusWaitForGPU
  4. R 操作矩阵和计算SVD的基本操作记录
  5. WPF 中Frame + Page 的使用
  6. C#sql语句如何使用占位符
  7. []==![]为true
  8. android 高清壁纸设置慢
  9. php简述一下并集交集差集,总结了一下js中的差集、交集、并集
  10. 在 Vue 中正确使用 防抖 和 节流