使用递归的方式解决,对于matrix,在左上角x,y,右下角xx,yy组成的区域内搜索target。
mx=x和xx的中点,my=y和yy的中点
判断matrix[mx][my],如果它大于target,则左上角四分之一区域无需再搜;如果它小于target,则右下角四分之一区域无需再搜。但是右上角和左下角有可能需要搜索。复杂度为log(行×列)

class Solution:def solve(self, matrix, x, y, xx, yy, target):if target > matrix[xx - 1][yy - 1] or target < matrix[x][y]: return Falseif x + 1 >= xx and y + 1 >= yy:if matrix[x][y] == target:return Trueelse:return Falsemx = (x + xx) >> 1my = (y + yy) >> 1if matrix[mx][my] > target:ans = self.solve(matrix, x, y, mx, my, target)else:ans = self.solve(matrix, mx, my, xx, yy, target)if ans: return Trueans = self.solve(matrix, mx, y, xx, my, target) or self.solve(matrix, x, my, mx, yy, target)return ansdef searchMatrix(self, matrix, target):""":type matrix: List[List[int]]:type target: int:rtype: bool"""if not matrix: return Falser = len(matrix)if not r: return Falsec = len(matrix[0])if not c: return Falsereturn self.solve(matrix, 0, 0, r, c, target)if __name__ == '__main__':print(Solution().searchMatrix([[1, 3]], 1))

转载于:https://www.cnblogs.com/weiyinfu/p/8510775.html

leetcode74:二维矩阵搜索问题相关推荐

  1. leetcode74. 搜索二维矩阵(二分查找)

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

  2. python 搜索二维矩阵

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

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

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

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

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

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

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

  6. LintCode 28. 搜索二维矩阵

    import org.junit.Test;import java.util.Arrays;public class SearchMatrix {/*** @param matrix: matrix, ...

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

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

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

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

  9. Java 搜索二维矩阵 II

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

最新文章

  1. LBS 基于位置的服务
  2. excel求期望_商务数据分析考试:决策树分析(Excel)-安聪
  3. 基于jquery,ajax请求及自我终止的函数封装
  4. LAMP(CentOS 7.2)环境下搭建WordPress
  5. CentOS下编译安装LAMP开发环境
  6. libav(ffmpeg)简明教程(1)
  7. 07 第三方之文件上传
  8. 计算机网络 自顶向下方法
  9. cat6 万兆_CAT6、CAT6A超六类和CAT7七类网线哪个更适合10GBASE-T万兆网络
  10. python读取excel中数据绘制柱状图_Python的Excel操作及数据可视化
  11. linux系统FW升降级步骤,一种用于在Linux系统下不重启系统实现LSIRAID卡FW升级的方法与流程...
  12. 基于微信公众平台的智能硬件/智能设备APP开发详解
  13. 记录一次数据库被黑的过程
  14. Facebook广告投放策略与优化Facebook广告成效的技巧方式
  15. 昆明新迎万枫、菏泽希尔顿花园酒店​开业;万豪在华运营酒店超过400家 | 中国酒店周刊...
  16. 解决Openwrt安装插件提示一下错误的办法
  17. Spring 教程01
  18. 一文详解什么是RNN(循环神经网络)
  19. Ionic + Vue3 + Capacitor 配置应用信(App 包名、应用名、应用图标、启动动画、版本信息)
  20. CocosCreator只谈实战系列1——成语游戏编辑器篇

热门文章

  1. redis用HyperLogLog计算UV
  2. 2019杭电多校第一场 Operation HDU - 6579
  3. Eclipse 的控制台console乱码
  4. SVN回滚至某个版本
  5. go-基础知识二-数据类型-变量
  6. 我在用的浏览器插件利器
  7. nvm、npm、nodejs的关系
  8. 重装也无法修复此计算机,遇到Win7系统崩溃无法修复的情况怎么办
  9. 火狐浏览器中打开java_Ubuntu下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法...
  10. 熬夜整理了10个行业的40份可视化大屏模板,可直接拿走套用