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
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 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有中文版和英文版,可以选择自己喜欢的版本即可。安装时重新选择一下安装路径(也可以默认路径),一直下一步安装完成即可。(本文档采用英文版本)安装文件网盘路径链接࿱…...
探索GreatADM:如何快速定义监控
引文 在数据库运维过程中,所使用的运维管理平台是否存在这样的问题: 1、默认监控粒度不够,业务需要更细颗粒度的监控数据。2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固…...
C# 参数名加冒号,可以打乱参数顺序
今天看到Python有这种语法,参数名后面跟着等号写参数,联想到前几天用到的Serilog,好像有个参数名加冒号的写法,搜索了一下,果真有这种用法。 函数特别大的时候,用这种方法很直观,而且参数可以打…...
AVL树 模拟实现(插入)
目录 模拟插入节点 左单旋 右单旋 右左双旋 左右双旋 总结 实现 插入实现 左单旋实现 右单旋实现 右左双旋实现 左右双旋实现 AVL树 模拟实现(插入) AVL 树,是高度平衡二叉搜索树,其主要通过旋转来控制其左右子树的高…...
Java面试整理(三)《JavaSE》
反射机制(低) 在我刚开始学Java的时候,大家都很难理解反射这个概念,在实际开发中,虽然都有反射的踪影,但感觉自己又能理解是的。反射机制是指在程序运行时,对任意一个类都能获取其所有属性和方法,并且对任意一个对象都能调用其任意一个方法。 反射的步骤如下: 获取想要…...
LeetCode 1282. Group the People Given the Group Size They Belong To【哈希表】1267
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
Vue2项目练手——通用后台管理项目第八节
Vue2项目练手——通用后台管理项目 菜单权限功能tab.jsLogin.vueCommonAside.vuerouter/index.js 权限管理问题解决router/tab.jsCommonHeader.vuemain.js 菜单权限功能 不同的账号登录,会有不同的菜单权限通过url输入地址来显示页面对于菜单的数据在不同页面之间的…...
leetcode872. 叶子相似的树(java)
叶子相似的树 题目描述递归 题目描述 难度 - 简单 leetcode - 872. 叶子相似的树 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果…...
【Linux从入门到精通】信号(初识信号 信号的产生)
本篇文章会对Linux下的信号进行详细解释。主要内容是什么是信号、信号的产生、核心转储等问题。希望本篇文章会对你有所帮助。 文章目录 引入 一、初识信号 1、1 生活中的信号 1、2 Linux 下的信号 1、3 信号进程所得的初识结论 二、信号的产生 2、1 用户通过终端输入产生信号 …...
Golang综合项目实战(一)
Golang综合项目实战(一) 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. 函数式组件和类组件区别 函数式组件 函数式组件是一种简单的组件定义方式,它是一个以JavaScript函数为基础的组件。 可以把函数式组件理解为纯函数,它的输入为props,输出为JSX。函数式组件没有状态,也没有生命周期。 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)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明的作业本上有道思考题: 看下面的算式: (□□□□-□□□□)*□□900其中的小方块代表 0 ~ 9 的数字,这 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解压安装包 (1)正常liunx安装rar(2)无sudo\root(管理员身份)时如何安装rar (1)正常liunx安装rar 1、下载安装包 WinRAR archiver, a powerful tool to process RAR and ZIP files (r…...
浅析目标检测入门算法:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4
本文致力于让读者对以下这些模型的创新点和设计思想有一个大体的认识,从而知晓YOLOv1到YOLOv4的发展源流和历史演进,进而对目标检测技术有更为宏观和深入的认知。本文讲解的模型包括:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4…...
C++:类和对象(三)
本文主要介绍初始化列表、static成员、友元、内部类、匿名对象、拷贝对象时编译器的优化。 目录 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、拷…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
