【Python】Leetcode 240. 搜索二维矩阵 II - 削减矩阵+递归,击败88%

描述

  1. 搜索二维矩阵 II

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

思路

确定左右及上下限,削减矩阵,递归。
注意判断四个端点是否等于target,若有满足的返回true,否则判断左上角端点或右下角端点是否大于或小于target,满足则返回false,否则递归直到上下限溢出返回false。
可以证明,在以上判断条件下,每次递归都会导致矩阵被削减,时间复杂度为O(m+n)

复杂度

时间复杂度:
O(m+n)

空间复杂度:
O(1)
在这里插入图片描述

`class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
l = 0
r = len(matrix[0])-1
t = 0
b = len(matrix)-1
return self.dfs(matrix,l,r,t,b,target)

def dfs(self,matrix,l,r,t,b,target):
    print(l,r,t,b)
    if(r<l or b<t): return False
    i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值