首页 > 编程语言 >7月22号python 每日一题

7月22号python 每日一题

时间:2024-07-22 17:10:44浏览次数:18  
标签:plants return target 22 python 每日 List int matrix

7月22号python 每日一题

LCR 121. 寻找目标值 - 二维数组

难度:中等

m*n 的二维数组 plants 记录了园林景观的植物排布情况,具有以下特性:

  • 每行中,每棵植物的右侧相邻植物不矮于该植物;
  • 每列中,每棵植物的下侧相邻植物不矮于该植物。

请判断 plants 中是否存在目标高度值 target

示例 1:

输入:plants = [[2,3,6,8],[4,5,8,9],[5,9,10,12]], target = 8

输出:true
 

示例 2:

输入:plants = [[1,3,5],[2,5,7]], target = 4

输出:false

补全代码:

class Solution:
    def findTargetIn2DPlants(self, plants: List[List[int]], target: int) -> bool:
    

答案:

思路:

首先进行非空判断,即排除matrix=[]和matrix=[[]]
然后找标志数,找左下角数字作为标志数,它为第一列最大数字,是本行最小数字
如果target 大于该数则向上查找,否则往右查找。

代码 :

class Solution:
    def findTargetIn2DPlants(self, matrix: List[List[int]], target: int) -> bool:
        if len(matrix)==0 or (len(matrix[0])==0 and len(matrix)==1):
            return False
        else:
            i, j = 0, len(matrix) - 1
            while j>=0 and i<len(matrix[0]):
                if target < matrix[j][i]:
                    j-=1
                elif matrix[j][i] < target:
                    i += 1 
                else:
                    return True
        return False
  1. 初始化和边界检查:首先,检查矩阵是否为空或是否只包含空列表。如果是,则返回False
  2. 初始化索引:将i初始化为0(指向矩阵的第一列),将j初始化为len(matrix) - 1(指向矩阵的最后一行)。
  3. 遍历矩阵

最简单的代码:(执行最快的)

class Solution:
    def findTargetIn2DPlants(self, plants: List[List[int]], target: int) -> bool:
        for row in plants:
            if target in row:
                return True
        
        return False

这个也不错哦:

class Solution:
    def findTargetIn2DPlants(self, plants: List[List[int]], target: int) -> bool:
        
        for i in plants:
            if not i: return False
            if i[0] <= target and i[-1] >= target:
                for j in i:
                    if j == target: return True
        return False

标签:plants,return,target,22,python,每日,List,int,matrix
From: https://www.cnblogs.com/guixiangyyds/p/18316423/xiti1

相关文章

  • Python文件夹与文件逐级移动
    importosimportshutildefmove_items(src_path,dest_path):  #列出源路径下的所有项  items=os.listdir(src_path)  foritem_nameinitems:    src_item=os.path.join(src_path,item_name)    #构造目标路径    dest_i......
  • T240722【1-(二)-3】
    [T240722]证明:\(p,q\)为互质的整数\(\Longrightarrow\forallz\in\C,~(\sqrt[q]z)^p=\sqrt[q]{z^p}\).若\(p,q\)的最大公因数\(d>1\),结论如何?证:设\(p,q\in\mathbb{Z}\andp\perpq,~~z=r(\cos\theta+\mathrmi\sin\theta)\),则\[\begin{aligned}......
  • python解释器源码函数调用分析
    1、编译python代码1.1python代码test.py1defftest():2x=33ftest()1.2编译工具disass_py.py#-*-coding:utf8-*-importdisimportsysdefdisassemble_file(file_path):withopen(file_path,'r')asfile:source_code=file.read()......
  • python学习笔记——基础数据类型
    一、python赋初值         1.Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。    2.在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。    3.等号(=)用来给变量赋值。 ......
  • Python数据可视化常用的库
    Python中的数据可视化是指使用图形和图表来展示数据,以便更直观地理解和分析数据。数据可视化的目的是将复杂的数据转化为容易理解的视觉形式,从而帮助发现数据中的模式、趋势和异常情况。以下是数据可视化的一些主要用途:探索性数据分析:帮助理解数据分布和结构识别数据中的......
  • 张高兴的 MicroPython 入门指南:(三)使用串口通信
    目录什么是串口使用方法使用板载串口相互通信硬件需求电路代码使用板载的USB串口参考什么是串口串口是串行接口的简称,这是一个非常大的概念,在嵌入式中串口通常指UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)。使用串口进行的通信叫做串行通信,与之相对的一......
  • 如何使用 Python 自动反转 .cal 和 .GP4 图像文件中的颜色?
    我在.cal和.GP4中有数千个计划,我需要反转其颜色(当它们处于“负”时切换到“正”模式)。我知道可以在像autocad这样的软件中一一完成,但出于明显节省时间的原因,我正在寻找一种批量处理方法。我创建了一个Python程序来执行该操作,但先验有没有允许轻松操作.cal和.GP4......
  • 写一个 python daemo 注册到nacos中
     """注册到nacos中的deamonnacos:2.3.2(模式:standalone)python:3.6.8nohuppython3demon.py&"""importrequestsimportthreadingimporttime#Nacos服务器地址和端口nacos_url="http://127.0.0.1:8848"#Nacos登录信息user......
  • Python、图形用户界面、ctk
    所以,我正在创建一个博客,现在,我在设置部分,我有一个带有按钮的滑动面板,我希望它转到一个新窗口,我将在其中创建新的小部件等...,我已经完成了这种登录和注册的事情,问题是现在我不能使用pack.forget(),它只是不起作用classSlidePanel(customtkinter.CTkFrame):def__init__(se......
  • 当我的代码损坏时,如何设置警报或蜂鸣声? (最好是Python)
    我正在为机器人运行一些代码,它将继续运行,直到我手动终止该进程。或者,如果代码意外遇到诸如SYntaxError或其他此类错误/异常之类的错误并崩溃。我想知道当我的代码崩溃时是否可以设置一些警报或蜂鸣声。我的目标就是将视线从屏幕上移开,仅在进程停止运行时才检查它。如果......