当前位置: 首页 > news >正文

LeetCode 每日一题 2023/9/4-2023/9/10

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


目录

      • 9/4 449. 序列化和反序列化二叉搜索树
      • 9/5 2605. 从两个数字数组里生成最小数字
      • 9/6 1123. 最深叶节点的最近公共祖先
      • 9/7 2594. 修车的最少时间
      • 9/8 2651. 计算列车到站时间
      • 9/9 207. 课程表
      • 9/10 210. 课程表 II


9/4 449. 序列化和反序列化二叉搜索树

后序遍历

class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = Noneclass Codec:def serialize(self, root: TreeNode) -> str:"""Encodes a tree to a single string."""ans = []def find(node):if node:find(node.left)find(node.right)ans.append(node.val)find(root)return " ".join(map(str,ans))def deserialize(self, data: str) -> TreeNode:"""Decodes your encoded data to tree."""l = list(map(int,data.split()))def build(minv,maxv):if l==[] or l[-1]<minv or l[-1]>maxv:return Noneval = l.pop()node = TreeNode(val)node.right = build(val,maxv)node.left = build(minv,val)return nodereturn build(-1,10001)

9/5 2605. 从两个数字数组里生成最小数字

先取两个交集的最小值 如果不存在交集
去两个数组最小值组成一个两位数

def minNumber(nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: int"""l = list(set(nums1)&set(nums2))if len(l)>0:return min(l)a,b=min(nums1),min(nums2)if a<b:return a*10+belse:return b*10+a

9/6 1123. 最深叶节点的最近公共祖先

dfs 记录各个节点深度
如果左右子树深度都是最深则当前节点为要求节点

class TreeNode(object):def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right
def lcaDeepestLeaves(root):""":type root: TreeNode:rtype: TreeNode"""ans=Nonemaxd = -1def dfs(node,dep):global ans,maxdif not node:maxd = max(maxd,dep)return depleft = dfs(node.left,dep+1)right = dfs(node.right,dep+1)if left==right==maxd:ans = nodereturn max(left,right)dfs(root,0)return ans

9/7 2594. 修车的最少时间

二分查找 最多用时min(ranks)*cars^2

def repairCars(ranks, cars):""":type ranks: List[int]:type cars: int:rtype: int"""from math import floor,sqrt l,r=0,min(ranks)*cars*carswhile l+1<r:mid = (l+r)//2if sum([floor(sqrt(mid//r)) for r in ranks])>=cars:r = midelse:l = midreturn r

9/8 2651. 计算列车到站时间

24小时制


def findDelayedArrivalTime(arrivalTime, delayedTime):""":type arrivalTime: int:type delayedTime: int:rtype: int"""return (arrivalTime+delayedTime)%24

9/9 207. 课程表

bfs classlist存储当前可以学习的课程
afterclass 存储这门课的后续课程
preclass 存储这门课的条件课程数量

def canFinish(numCourses, prerequisites):""":type numCourses: int:type prerequisites: List[List[int]]:rtype: bool"""from collections import defaultdictif len(prerequisites)==0:return Trueclasslist = [] #afterclass = defaultdict(set) preclass = {x:0 for x in range(numCourses)}for cls,pre in prerequisites:afterclass[cls].add(pre)preclass[pre] += 1for key in preclass:if preclass[key]==0:classlist.append(key)ans=0while classlist:tmp = classlist.pop(0)ans +=1for aftercls in afterclass[tmp]:preclass[aftercls] -=1if preclass[aftercls]==0:classlist.append(aftercls)return ans==numCourses    

9/10 210. 课程表 II

bfs classlist存储当前可以学习的课程
afterclass 存储这门课的后续课程
preclass 存储这门课的条件课程数量

def findOrder(numCourses, prerequisites):""":type numCourses: int:type prerequisites: List[List[int]]:rtype: List[int]"""from collections import defaultdictif len(prerequisites)==0:return [x for x in range(numCourses)]classlist = [] #存储当前可以学习的课程afterclass = defaultdict(set) #存储这门课的后续课程preclass = {x:0 for x in range(numCourses)}#存储这门课的条件课程数量firstset = set(range(numCourses))for cls,pre in prerequisites:afterclass[pre].add(cls)preclass[cls] += 1if cls in firstset:firstset.remove(cls)classlist = list(firstset)order = []while classlist:tmp = classlist.pop(0)order.append(tmp)for aftercls in afterclass[tmp]:preclass[aftercls] -=1if preclass[aftercls]==0:classlist.append(aftercls)return order if len(order)==numCourses else []

相关文章:

LeetCode 每日一题 2023/9/4-2023/9/10

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/4 449. 序列化和反序列化二叉搜索树9/5 2605. 从两个数字数组里生成最小数字9/6 1123. 最深叶节点的最近公共祖先9/7 2594. 修车的最少时间9/8 2651. 计算列车到站时间9/…...

C# Onnx Yolov8 Seg 分割

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…...

Postman接口测试流程

一、工具安装 ● 安装Postman有中文版和英文版&#xff0c;可以选择自己喜欢的版本即可。安装时重新选择一下安装路径&#xff08;也可以默认路径&#xff09;&#xff0c;一直下一步安装完成即可。&#xff08;本文档采用英文版本&#xff09;安装文件网盘路径链接&#xff1…...

探索GreatADM:如何快速定义监控

引文 在数据库运维过程中&#xff0c;所使用的运维管理平台是否存在这样的问题&#xff1a; 1、默认监控粒度不够,业务需要更细颗粒度的监控数据。2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固…...

C# 参数名加冒号,可以打乱参数顺序

今天看到Python有这种语法&#xff0c;参数名后面跟着等号写参数&#xff0c;联想到前几天用到的Serilog&#xff0c;好像有个参数名加冒号的写法&#xff0c;搜索了一下&#xff0c;果真有这种用法。 函数特别大的时候&#xff0c;用这种方法很直观&#xff0c;而且参数可以打…...

AVL树 模拟实现(插入)

目录 模拟插入节点 左单旋 右单旋 右左双旋 左右双旋 总结 实现 插入实现 左单旋实现 右单旋实现 右左双旋实现 左右双旋实现 AVL树 模拟实现&#xff08;插入&#xff09; AVL 树&#xff0c;是高度平衡二叉搜索树&#xff0c;其主要通过旋转来控制其左右子树的高…...

Java面试整理(三)《JavaSE》

反射机制(低) 在我刚开始学Java的时候,大家都很难理解反射这个概念,在实际开发中,虽然都有反射的踪影,但感觉自己又能理解是的。反射机制是指在程序运行时,对任意一个类都能获取其所有属性和方法,并且对任意一个对象都能调用其任意一个方法。 反射的步骤如下: 获取想要…...

LeetCode 1282. Group the People Given the Group Size They Belong To【哈希表】1267

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

Vue2项目练手——通用后台管理项目第八节

Vue2项目练手——通用后台管理项目 菜单权限功能tab.jsLogin.vueCommonAside.vuerouter/index.js 权限管理问题解决router/tab.jsCommonHeader.vuemain.js 菜单权限功能 不同的账号登录&#xff0c;会有不同的菜单权限通过url输入地址来显示页面对于菜单的数据在不同页面之间的…...

leetcode872. 叶子相似的树(java)

叶子相似的树 题目描述递归 题目描述 难度 - 简单 leetcode - 872. 叶子相似的树 请考虑一棵二叉树上所有的叶子&#xff0c;这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子&#xff0c;如上图所示&#xff0c;给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果…...

【Linux从入门到精通】信号(初识信号 信号的产生)

本篇文章会对Linux下的信号进行详细解释。主要内容是什么是信号、信号的产生、核心转储等问题。希望本篇文章会对你有所帮助。 文章目录 引入 一、初识信号 1、1 生活中的信号 1、2 Linux 下的信号 1、3 信号进程所得的初识结论 二、信号的产生 2、1 用户通过终端输入产生信号 …...

Golang综合项目实战(一)

Golang综合项目实战&#xff08;一&#xff09; 01-项目简介02-项目架构、术语、运行结果03-创建并初始化项目04-创建用户模型和错误处理05-创建密码加密工具类06-保存密码之前的hooks07-创建用户名密码验证工具类08-用户数据库操作逻辑09-操作用户service10-创建商品分类模型…...

springmvc 获取项目中的所有请求路径

springboot/springmvc 获取项目中的所有请求路径 1. 编写业务代码 Autowiredprivate WebApplicationContext applicationContext;GetMapping("/getAllURL")public RestfulResult getAllURL() {// 获取springmvc处理器映射器组件对象 RequestMappingHandlerMapping无…...

【React学习】React高级特性

1. 函数式组件和类组件区别 函数式组件 函数式组件是一种简单的组件定义方式&#xff0c;它是一个以JavaScript函数为基础的组件。 可以把函数式组件理解为纯函数&#xff0c;它的输入为props&#xff0c;输出为JSX。函数式组件没有状态&#xff0c;也没有生命周期。 functio…...

如何在Windows系统搭建filebrowser私人网盘并实现在外网访问本地内网

Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问 文章目录 Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…...

蓝桥杯官网练习题(算式900)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明的作业本上有道思考题&#xff1a; 看下面的算式&#xff1a; (□□□□-□□□□)*□□900其中的小方块代表 0 ~ 9 的数字&#xff0c;这 10 个方块刚好包含了…...

【C++从入门到精通】第1篇:C++基础知识(上)

文章目录 1.1 C语句和程序结构1.1.1 本篇介绍1.1.2 语句1.1.3 函数和主函数1.1.4 解析Hello world1.1.5 语法和语法错误1.1.6 练习时间 1.2 注释1.2.1 单行注释1.2.2 多行注释1.2.3 正确使用注释1.2.4 注释掉代码 1.3 对象和变量1.3.1 数据和值1.3.2 对象和变量1.3.3 变量实例化…...

liunx系统无sudo或管理员权限安装rar解压安装包

liunx无sudo权限安装rar解压安装包 &#xff08;1&#xff09;正常liunx安装rar&#xff08;2&#xff09;无sudo\root(管理员身份)时如何安装rar &#xff08;1&#xff09;正常liunx安装rar 1、下载安装包 WinRAR archiver, a powerful tool to process RAR and ZIP files (r…...

浅析目标检测入门算法:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4

本文致力于让读者对以下这些模型的创新点和设计思想有一个大体的认识&#xff0c;从而知晓YOLOv1到YOLOv4的发展源流和历史演进&#xff0c;进而对目标检测技术有更为宏观和深入的认知。本文讲解的模型包括&#xff1a;YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4…...

C++:类和对象(三)

本文主要介绍初始化列表、static成员、友元、内部类、匿名对象、拷贝对象时编译器的优化。 目录 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、拷…...

分布式系统第三讲:全局唯一ID实现方案

分布式系统第三讲&#xff1a;全局唯一ID实现方案 本文主要介绍常见的分布式ID生成方式&#xff0c;大致分类的话可以分为两类&#xff1a;一种是类DB型的&#xff0c;根据设置不同起始值和步长来实现趋势递增&#xff0c;需要考虑服务的容错性和可用性; 另一种是类snowflake型…...

Ubuntu之apt-get系列--安装JDK8--方法/教程

原文网址&#xff1a;Ubuntu之apt-get系列--安装JDK8--方法/教程_IT利刃出鞘的博客 简介 本文介绍如何在Ubuntu下安装JDK8。 验证是否安装 可以通过如下命令判断系统是否有安装ssh服务&#xff1a; 命令 java -version 结果 如上所示&#xff0c;表示还没有安装。 查看…...

npm 实现原理

输入 npm install 命令并敲下回车后&#xff0c;会经历如下几个阶段&#xff08;以 npm 5.5.1 为例&#xff09;&#xff1a; 1.执行工程自身 preinstall 当前 npm 工程如果定义了 preinstall 钩子此时会被执行。 2.确定首层依赖模块 首先需要做的是确定工程中的首层依赖&a…...

国家开放大学 练习题

学前儿童社会教育活动指导 参考试题 一、单项选择题&#xff08;每小题3分&#xff0c;共30分&#xff09; 1.《规程》第三十二条规定&#xff1a;“幼儿园应当充分尊重幼儿的个体差异&#xff0c;根据幼儿不同的心理 发展水平&#xff0c;研究有效的活动形式和方法&am…...

Kotlin

函数命名 针对您目前为止学到的 Kotlin 知识&#xff0c;下面给出了一些相关样式指南&#xff1a; 函数名称应采用驼峰式大小写形式&#xff0c;并且应该是动词或动词短语。每个语句都应单独占一行。左花括号应出现在函数开始行的末尾。左花括号前应有一个空格。 变量声明 变…...

和未来合伙人的共同价值观 - 初期

一定要互补&#xff0c;能力板块的互补。 价值观一定要正。 如何管理创业团队&#xff1f; 层级是一个公司逼不得已才要做的&#xff0c;每一个层级的堆积&#xff0c;都会带来一些压力和效率的损失&#xff0c;你一旦把这个团队&#xff0c;变成了十个十个人的团队&#xf…...

虚函数表存储的位置(解析C++内存分配及其编译分段)

先上结论&#xff1a;C虚函数表保存在.rdata只读数据段。编译时期由编译器确定虚函数表。虚函数表属于类&#xff0c;类的所有对象共享这个类的虚函数表。 c/c的内存分配 栈&#xff08;stack&#xff09;&#xff1a;又称堆栈&#xff0c;栈是由编译器自动分配释放&#xf…...

JS如何正确销毁 VIDEO 和AUDIO 元素

销毁 VIDEO 元素意味着停止视频的播放&#xff0c;并释放与其相关的所有资源。 一般情况下&#xff0c;我们可以通过调用 VIDEO 元素的 pause() 方法来停止视频播放&#xff0c;然后使用 remove() 方法从 DOM 树中删除元素。 但是&#xff0c;仅仅这样做可能并不能完全卸载 V…...

SpringMvc第四战-【SpringMvc文件上传,下载】

目录 一.SpringMvc文件上传 1.导入依赖&#xff08;在pom.xml中&#xff09; 2.配置文件上传解析器&#xff08;在spring-mvc.xml中&#xff09; 3.前端标记多功能表单&#xff08;构建一个jsp界面来操作&#xff09; 4.将文件写出流&#xff0c;然后写入服务器 5.配置映…...

一种结合白平衡统计信息和曝光信息的软光敏算法专利学习(专利四)

图像分块&#xff1a; 参见下图&#xff0c;一幅图像大小为5*6(像素)&#xff0c;每个像素包含R、G、B三个分量&#xff0c;该图像划分为4个分块&#xff0c;第一分块的大小为3*3像素&#xff0c;第二分块的大小为3*3(像素)&#xff0c;第三分块的大小为2*3像素&#xff0c;第四…...

亚马逊网站建设的意义/总排行榜总点击榜总收藏榜

【http://msdn.microsoft.com/zh-cn/library/bb861909.aspx】 在 Microsoft SharePoint Foundation 中&#xff0c;修改 web.config 设置的一种方法是使用 Microsoft.SharePoint.Administration 命名空间的 SPWebConfigModification 类&#xff0c;这使得您能够动态地对实体进行…...

seo 排名/seo观察网

当当当~时光荏苒&#xff0c;岁月如梭&#xff0c;年终将至&#xff0c;有些财年节点设置在自然年底的公司&#xff0c;已经开始一年一度的升职加薪年终总结了。项目经理每天在客户现场背锅填坑沟通协调记录、整理和分析已经不易&#xff0c;再提取亮点和价值可能更无从下手。因…...

独立站有哪些常见平台/惠州seo外包公司

题目如下 l&#xff08;编程题&#xff09;信用卡号验证 当你输入信用卡号码的时候&#xff0c;有没有担心输错了而造成损失呢&#xff1f;其实可以不必这么担心&#xff0c;因为并不是一个随便的信用卡号码都是合法的&#xff0c;它必须通过Luhn算法来验证通过。 该校验的过程…...

19手机网站/seo外包优化

回望2020 2020年第一天。2020年第一个月。2020年第一季度。十一,国庆。现在,2021.1.12020年第一天。 今天是2020年的第一天,昨晚我刚刚经历了一场紧张刺激且尴尬的转正答辩。我来到这家公司6个月了,说实话,我很不开心。昨晚的答辩是我们的部门大boss亲自坐镇,我看得出来…...

超低价的郑州网站建设/最近一周的重大新闻

多进程指的是一个程序可以启动多个进程执行&#xff0c;一般模式如下&#xff1a; import multiprocessing from multiprocessing import Process,current_process import time# cup 核数量 num_cpus multiprocessing.cpu_count()def func(x):time.sleep(1)proc current_pro…...

wordpress 做网站/上海网络营销上海网络推广

ACPI包括很多功能&#xff0c;电源管理是其功能之一&#xff0c;具体的ACPI的介绍可以参考ACPI的技术文档。Linux中利用模块机制&#xff0c;实现ACPI对电源的管理&#xff1a;static struct cpufreq_driver acpi_cpufreq_driver {.verify acpi_cpufreq_verify,.target acpi_c…...