python 搜索二维矩阵

C++坦克大战源代码 【代码】C++坦克大战源代码。 阅读详情

搜索二维矩阵

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。

示例 1:
在这里插入图片描述

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
示例 2:
在这里插入图片描述

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false

提示:

m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104

题解

class Solution:
    """
    处理思路:
    1.先对列进行二分处理,找到小于target 的最大第一个元素的列
    2.对此列进行二分, 找到推行的target
    3.空间复杂度为O1 时间复杂的为log(m+n)
    """
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        col_first = 0
        col_last = len(matrix) - 1

        row_first = 0
        row_last = len(matrix[0]) - 1

        row_data = self.column_binary(matrix, col_first, col_last, target)

        return self.row_binary(row_data, row_first, row_last, target)

    
    def column_binary(self, matrix, col_first, col_last, target):
        if col_last == 0:
            return matrix[0]

        # 对列的第一个元素进行二分对比
        while col_last >= col_first:
            mid = col_first + (col_last-col_first)//2
            print('mid:', mid)
            if matrix[mid][0] <= target:
                # mid + 1 > col_last 处理[[1],[3]] 3 这种情况
                if mid+1 > col_last or matrix[mid+1][0] > target:
                    # matrix[mid] 就是我们想要找的列:
                    return matrix[mid]
                else:
                    col_first = mid + 1
            else:
                col_last = mid - 1
        
        return matrix[col_last]
    
    def row_binary(self, row_data, row_first, row_last, target):
        # 对行进行二分
        while row_last >= row_first:
            mid = row_first + (row_last-row_first)//2
            print('mid_Val:', row_data[mid])
            if row_data[mid] == target:
                return True
            elif row_data[mid] > target:
                row_last = mid - 1
            else:
                row_first = mid + 1
                
        return False
模型实战(31)之 yolo26 实现对手部关键点数据集 的训练与关键点检测 阅读详情

相关推荐

AFSim仿真系统—几何视角下的子系统交互机制解析

本文深入解析了AFSim仿真系统中子系统交互的几何机制。通过剖析世界坐标系、实体坐标系、部件坐标系等七层空间定位体系,阐述了传感器探测、目标指示等交互行为背后的几何原理与限制条件。掌握这套几何视角,是构建高保真、符合物理现实的AFSim仿真模型的关键,能有效避免坐标混乱、交互失效等常见问题。

terraform7cloud的博客 493

LeetCode-74、搜索二维矩阵-中等

LeetCode-74、搜索二维矩阵-中等 编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target...

clover_my的博客 357

华为海思IC设计岗位笔试全解析:物理、电路与工艺三大方向备考指南

本文全面解析华为海思IC设计岗位笔试的物理、电路与工艺三大方向备考要点。针对物理设计方向,重点讲解半导体能带理论、载流子输运机制等核心考点;电路设计方向涵盖Verilog语法、UVM验证等关键技术;工艺方向则深入探讨FinFET工艺、光刻技术等前沿知识。提供高效备考策略和应试技巧,助力考生提升通过率。

weixin_29196613的博客 1085

Leetcode题74、搜索二维矩阵(Python题解)Amazon面试题

问题: 题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/walking-robot-simulation/ 难度:中等 分析: 两个思路: 1、二分查找,关键地方在于求中点时行数用整除求,列数用取余求。 2、右上或左下角法,以右上角为例,观察右上角,右上角的值是行最大值和列最小值,可以用来做交界值。当目标值大于右上角值时,可以删除本行;当目标值小于右上角值时,可以删除本列。 解决方法: 1:二分查找 class Solution: def

AI414010的博客 474

从零开始的BW(五) 外部系统供数之OData测试

5、激活添加的服务,如提示下图中的激活失败,根据生成URI在事务代码SICF目录中找到对应的服务,设置超时时间,设置完之后重新激活即可,详情可参考SAP note 1986626。如果刚才设置BY Odata的query在这没有显示,SE38执行程序EQ_RS_AUTOSETUP,选中需要生成服务的query,生成服务后再去添加服务。测试get方法,URI中默认的参数是?4、事务代码/IWFND/MAINT_SERVICE中添加服务,如果提示用户不再登陆,在事务代码前加上/O或者/N即可。

m0_61386064的博客 1108

Docker入门教程:在腾讯云轻量服务器上部署你的第一个容器化应用 (2025)

还在为“在我电脑上明明是好的”而烦恼?本篇Docker入门教程,用通俗易懂的比喻解释镜像、容器的核心概念,并手把手带你在腾讯云轻量服务器上,从运行Nginx到编写Dockerfile打包自己的Python应用,轻松掌握容器化部署。

Clownseven的博客 2084

【LeetCode】74. 搜索二维矩阵

day180,二分 + 抽象二叉搜索树

weixin_43894455的博客 1935

信贷审批中的那些坑:从零开始搭建风控策略体系的5个关键步骤

本文深入探讨了信贷审批中的风控策略体系搭建,从数据陷阱识别、规则冲突诊断到反欺诈攻防,提供了5个关键步骤的实战指南。重点解析了如何通过特征工程、决策树优化和模型可解释性技术,构建动态平衡的风控体系,有效降低逾期风险并提升审批效率。

weixin_29253711的博客 413

LeetCode题解(python)-74. 搜索二维矩阵

LeetCode题解(python) 74. 搜索二维矩阵 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入: matrix = [ [1, 3, 5, 7], [10, 11,

Marshal Zheng的博客 659

OpenCV入门(一)Python环境的搭建

因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。

小幽余生不加糖 8123

NEU-DET 冷轧钢缺陷检测:基于 YOLOv8 的目标检测与可视化 UI 实现

冷轧钢的生产过程中,由于设备故障、工艺问题或者人为因素,钢板表面可能会出现多种缺陷,如划痕、裂纹、孔洞等,这些缺陷会严重影响钢材的质量。它比之前的版本(如 YOLOv5、YOLOv4)在速度和精度上都有显著提升,并且对硬件要求较低,适合进行工业界面和嵌入式系统的应用。这些版本相较于更大型的模型(如 YOLOv8x)具有更快的推理速度和较低的资源占用,适合工业生产线中的实时应用。通过将训练好的模型部署到工业生产线摄像头中,我们可以实现实时的缺陷检测,极大地提升生产效率和产品质量。

YOLO 737

Leetcode(240)——搜索二维矩阵 II

Leetcode(240)——搜索二维矩阵 II 题目 编写一个高效的算法来搜索 m∗nm*nm∗n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题解 方法一:直接查找 思路 ​​  直接遍历整个矩阵 matrix\textit{matrix}matrix,判断 target\textit{target}target 是否出现即可。 代码实现 class Solution { public: bool se

KCDCY的博客 1901

STM32cubeMX配置FreeRTOS软件定时器

文章目录前言1.软件定时器概述一.软件定时器特性二、使用cubeMX生成软件定时器总结 前言 本文主要带大家了解什么是软件定时器,并且带大家使用cubeMX配置软件定时器。 1.软件定时器概述 一.软件定时器特性 软件定时器就是一个闹钟当时间到了就执行相对应的任务或者代码。软件定时器是基于系统滴答中断的。在FreeRTOS中我们可以设置无数个软件定时器。 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期 (period)。 指定类型定时器有两种类型: 1.一次性 这类定时器启动后,它的回调函

m0_49476241的博客 6949

74.搜索二维矩阵 python

这种方法的时间复杂度为 O(log(m * n)),因为我们将二维矩阵视为一个一维的有序数组进行二分查找。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。由于矩阵具有每行和每列都是有序的特点,可以将二维矩阵视为一个一维的有序数组。否则,返回 false。每行的第一个整数大于前一行的最后一个整数。

sysu63的博客 2228

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python算法题集_搜索二维矩阵II

题目41:搜索二维矩阵II:编写一个高效的算法来搜索 m xn 矩阵 matrix 中的一个目标值 target,返回是否存在布尔值 。该矩阵具有以下特性:- 每行的元素从左到右升序排列 - 每列的元素从上到下升序排列

长孤秋落的札记 1369

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode:搜索二维矩阵 II(Python版本)

LeetCode刷题日记搜索二维矩阵 IIPython代码 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, ...

Cassiel_Coder的博客. 881

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

leetcode 240.搜索二维矩阵2(python)

leetcode 240.搜索二维矩阵2(python) 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]

pureszgd的博客 406

Python算法题集_搜索二维矩阵

题目74. 搜索二维矩阵:给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

长孤秋落的札记 1615

python-leetcode-搜索二维矩阵

【代码】python-leetcode-搜索二维矩阵。

Lucy_wzw的博客 447

【LeetCode 热题100】 240. 搜索二维矩阵 II的算法思路及python代码

编写一个高效的算法来搜索m×n矩阵matrix中的一个目标值target。

pljnb的博客 1599

用python写leetcode【9】 --搜索二维矩阵 II(240)

文章目录搜索二维矩阵 II(240)题目思路代码 今天起每文两道题改成每个文章一道题,这样阅读起来比较方便。 搜索二维矩阵 II(240) 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15]...

rory0114的博客 460

python每日一题——21搜索二维矩阵

python每日一题——21搜索二维矩阵

WY_记录 685

Python描述 LeetCode 74. 搜索二维矩阵

编写一个高效的算法来判断 矩阵中,是否存在一个目标值。该矩阵具有如下特性:示例 1: 示例 2: 提示:先二分行,再二分列

一起加油 674

力扣:(74)搜索二维矩阵(Python)

给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。

2503_91125378的博客 393

【Leetcode_总结】240. 搜索二维矩阵 II - python

Q: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 1...

maka_uir的博客 700

python力扣240.搜索二维矩阵Ⅱ

编写一个高效的算法来搜索矩阵 matrix 中的一个目标值。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target = 5输出:true示例 2:输入:matrix =[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20。

m0_46330606的博客 628
上一篇: python 寻找峰值
下一篇: python两数之和(hash 表)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值