LeetCode 每日一题 2023/5/22-2023/5/28

news/2024/11/22 8:16:29/

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 5/22 1080. 根到叶路径上的不足节点
      • 5/23 1090. 受标签影响的最大值
      • 5/24 1377. T 秒后青蛙的位置
      • 5/25 2451. 差值数组不同的字符串
      • 5/26 1091. 二进制矩阵中的最短路径
      • 5/27
      • 5/28


5/22 1080. 根到叶路径上的不足节点

dfs记录子树叶到根最大值

class TreeNode(object):def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right
def sufficientSubset(root, limit):""":type root: TreeNode:type limit: int:rtype: TreeNode"""def dfs(node,pre):if node==None:return Falseif not node.left and not node.right:return node.val+pre>=limitleft = dfs(node.left,pre+node.val)right = dfs(node.right,pre+node.val)if not left:node.left = Noneif not right:node.right = Nonereturn left or rightv = dfs(root,0)return root if v else None

5/23 1090. 受标签影响的最大值

大顶堆 每次取最大value值
记录当前labal数量是否可用

def largestValsFromLabels(values, labels, numWanted, useLimit):""":type values: List[int]:type labels: List[int]:type numWanted: int:type useLimit: int:rtype: int"""from collections import defaultdictimport heapql = [(-values[i],labels[i]) for i in range(len(values))]heapq.heapify(l)mem = defaultdict(int)ans = 0while numWanted>0 and len(l)>0:v,lab = heapq.heappop(l)v = -vif mem[lab]<useLimit:ans +=vmem[lab]+=1numWanted-=1return ans

5/24 1377. T 秒后青蛙的位置

dfs 深搜
m[i]记录从i节点能够到达的后续节点
如果跳跃时间为0 或者后续无节点
判断当前节点是否为目标
nxt为后续可以选择的个数

def frogPosition(n, edges, t, target):""":type n: int:type edges: List[List[int]]:type t: int:type target: int:rtype: float"""from collections import defaultdictm = defaultdict(list)for i,j in edges:m[i].append(j)m[j].append(i)mem = [0]*(n+1)def dfs(node,t):nxt = len(m[node])if node>1:nxt -=1if nxt==0 or t==0:return 1 if node==target else 0mem[node] = 1for j in m[node]:if not mem[j]:p = dfs(j,t-1)if p>0:return p*1.0/nxtreturn 0return dfs(1,t)

5/25 2451. 差值数组不同的字符串

遍历

def oddString(words):""":type words: List[str]:rtype: str"""def check(w):diff = [0]*(len(w)-1)for i in range(len(w)-1):diff[i] = ord(w[i+1])-ord(w[i])return diffd0 = check(words[0])d1 = check(words[1])if d0==d1:for i in range(2,len(words)):if d0!=check(words[i]):return words[i]return words[0] if d1==check(words[2]) else words[1] 

5/26 1091. 二进制矩阵中的最短路径

BFS 广搜
记录每个点是否经过

def shortestPathBinaryMatrix(grid):""":type grid: List[List[int]]:rtype: int"""from collections import defaultdictn=len(grid)if grid[0][0]==1 or grid[n-1][n-1]==1:return -1m = defaultdict(int)l = [(0,0)]m[(0,0)]=1step = [(1,0),(0,1),(-1,0),(0,-1),(1,1),(1,-1),(-1,1),(-1,-1)]while l:tmp = []for x,y in l:for i,j in step:nx,ny = x+i,y+jif 0<=nx<n and 0<=ny<n and grid[nx][ny]==0:if nx==n-1 and ny==n-1:return m[(x,y)]+1if m[(nx,ny)]==0 :tmp.append((nx,ny))m[(nx,ny)]=m[(x,y)]+1l=tmpreturn -1 if m[(n-1,n-1)]==0 else m[(n-1,n-1)]

5/27


5/28



http://www.ppmy.cn/news/91225.html

相关文章

canal DirectToKafka(采集数据到kafka、json解析、写入kafka)

canal DirectToKafka 环境的配置&#xff1a; 在mysql的配置文件中&#xff1a;/etc/my.cnf linux>/etc/my.cnf [mysqld] server-id1 log-binmysql-bin //binlog binlog_formatrow //binlog形式row 一行数据 binlog-do-dbtestdb //binlog 数据库testdb在canal中中配置&…

【JavaSE】Java基础语法(十四):Static

文章目录 概述特点与应用注意事项为什么一个静态方法中只能访问用static修饰的成员? 概述 Java中的static是一个修饰符&#xff08;也可称关键字&#xff09;&#xff0c;可以用于修饰变量、方法和代码块。 特点与应用 static修饰的成员具有以下特点&#xff1a; 被类的所有对…

华为nova11系列:一个月的深度体验感受,告诉你值不值得入手

作为一个追求时尚风格的年轻人&#xff0c; nova系列手机一直是我的关注重点。nova 11 Pro发布之后&#xff0c;独特少见的11号色一下子就戳中了我&#xff0c;于是第一时间我给我自己和我老婆分别下单了一台nova 11和nova 11 Pro。 作为主力机深度使用一个月后&#xff0c;可以…

MapReduce实现KNN算法分类推测鸢尾花种类

文章目录 代码地址一、KNN算法简介二、KNN算法示例&#xff1a;推测鸢尾花种类三、MapReduceHadoop实现KNN鸢尾花分类&#xff1a;1. 实现环境2.pom.xml 3.设计思路及代码1. KNN_Driver类2. MyData类3. KNN_Mapper类 4. KNN_Reducer类 代码地址 https://gitcode.net/m0_567453…

燕千云ChatGPT应用,用过的都说香

本期受访人物&#xff1a;张礼军 甄知科技联合创始人&#xff0c;CTO 首席产品官 2022年底&#xff0c;基于人工智能技术驱动的自然语言工具横空出世&#xff0c;一经推出&#xff0c;ChatGPT迅速火遍全球&#xff0c;几乎各行各业都在探索ChatGPT具体业务场景的应用&#xf…

Revit幕墙:用幕墙巧做屋面瓦及如何快速幕墙?

一、Revit中用幕墙巧做屋面瓦 屋面瓦重复性很高&#xff0c;我们如何快速的创建呢?下面我们来学会快速用幕墙来创建屋面瓦的技巧。 1.新建“公制轮廓-竖挺”族&#xff0c;以此来创建瓦的族(以便于载入项目中使用) 2.在轮廓族中绘制瓦的轮廓(轮廓需要闭合)&#xff0c;将族名称…

零基础web安全入门学习路线

相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手&#xff1f; 2.学习web渗透需要从哪里开始&#xff1f; 这让很多同学都处于迷茫状态而迟迟不下手&#xff0c;小编就在此贴给大家说一下web渗透的学习路线&#xff0c;希望对大家有帮助 同时本博客也会按照学习路…

【数据库】无效数据:软件测试对无效数据的处理

目录 一、无效数据的常见场景 &#xff08;1&#xff09;测试阶段 &#xff08;2&#xff09;测试方法 二、无效数据的概念 三、无效数据的影响 四、无效数据的识别 五、无效数据的处理方法 &#xff08;1&#xff09;拒绝无效数据 ① 拒绝无效数据的概念 ② 拒绝…