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

LeetCode笔记:Biweekly Contest 99

  • LeetCode笔记:Biweekly Contest 99
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
      • 1. 解题思路
      • 2. 代码实现
  • 比赛链接:https://leetcode.com/contest/biweekly-contest-99

1. 题目一

给出题目一的试题链接如下:

  • 2578. Split With Minimum Sum

1. 解题思路

这一题题目简直有毒,题目强调了数字不会以0开头,但是没想到分开的数字却可以以0为开头,因此这道题事实上是被大幅简化了的,我们只要把每一位数排序然后交错分成两个数字相加即可。

2. 代码实现

给出python代码实现如下:

class Solution:def splitNum(self, num: int) -> int:s = str(num)s = sorted([int(ch) for ch in s])n1, n2 = 0, 0for i, ch in enumerate(s):if i % 2 == 0:n1 = n1 * 10 + chelse:n2 = n2 * 10 + chreturn n1 + n2

提交代码评测得到:耗时32ms,占用内存13.8MB。

2. 题目二

给出题目二的试题链接如下:

  • 2579. Count Total Number of Colored Cells

1. 解题思路

这一题其实也简单,就是一个等差数列求和,一道数学题罢了,答案为:

ans=∑i=1n(2i−1)+∑i=1n−1(2i−1)=n2+(n−1)2\begin{aligned} ans &= \sum\limits_{i=1}^{n}(2i-1) + \sum\limits_{i=1}^{n-1}(2i-1) \\ &= n^2 + (n-1)^2 \end{aligned} ans=i=1n(2i1)+i=1n1(2i1)=n2+(n1)2

2. 代码实现

给出python代码实现如下:

class Solution:def coloredCells(self, n: int) -> int:return n * n + (n-1) * (n-1)

提交代码评测得到:耗时31ms,占用内存13.7MB。

3. 题目三

给出题目三的试题链接如下:

  • 2580. Count Ways to Group Overlapping Ranges

1. 解题思路

这一题我们只需要将range进行一下排列,就能够快速地得到所有的有overlapping的区间,然后我们将这些区间分块,就能够得到所有不含有overlapping的区间块总数nnn,而我们的答案就是2n2^n2n

2. 代码实现

给出python代码实现如下:

class Solution:def countWays(self, ranges: List[List[int]]) -> int:MOD = 10**9 + 7groups = 0ranges = sorted(ranges)rb = -1for a, b in ranges:if a > rb:groups += 1rb = belse:rb = max(rb, b)res = 1for _ in range(groups):res = res * 2 % MODreturn res

提交代码评测得到:耗时897ms,占用内存53.1MB。

4. 题目四

给出题目四的试题链接如下:

  • 2581. Count Number of Possible Root Nodes

1. 解题思路

这一题感觉是这周的8道题里面最难的一题了,一开始我也没啥思路,中午的时候临机一动想到了答案,还是蛮开心的。

这一题本质上就是遍历一下每一个点作为根节点时,Bob提出的guess当中正确的猜测的个数,统计其中能够大于k的情况。

单独对于某一个点作为根节点的情况下,考察正确猜测的个数这件事其实是很简单的,只需要用一个遍历即可实现,但是要遍历所有的点作为根节点的情况,这个对于计算效率的要求就比较高了,肯定不都能用for循环对一个节点都单独计算。

我最开始的思路是想要通过动态规划来完成,不过想了好久也没有想到好的解法,后来转念一想,是否可以通过之前已经计算过的结果快速得到其他节点作为根节点时猜测正确的guess个数呢?

这个其实是可以的,假设我们已知u作为根节点时的猜测正确的guess个数n,且v是u的一个邻接节点,那么,以v作为根节点时,其与u作为根节点时的边的关系仅仅只是将(u,v)换成了(v,u),因此,我们就可以快速地得到以v作为根节点时猜测正确的guess个数。

我们同样使用一个遍历即可得到全部的答案了。

2. 代码实现

给出python代码实现如下:

class Solution:def rootCount(self, edges: List[List[int]], guesses: List[List[int]], k: int) -> int:n = len(edges) + 1graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)guesses = {(u,v) for u, v in guesses}cnt = 0q = [0]seen = set()while q != []:u = q.pop(0)seen.add(u)for v in graph[u]:if v in seen:continueif (u, v) in guesses:cnt += 1q.append(v)seen = set()res = 0def dfs(u, cnt):nonlocal seen, resif u in seen:return if cnt >= k:res += 1seen.add(u)for v in graph[u]:if (u, v) in guesses:if (v, u) in guesses:dfs(v, cnt)else:dfs(v, cnt-1)else:if (v, u) in guesses:dfs(v, cnt+1)else:dfs(v, cnt)returndfs(0, cnt)return res

提交代码评测得到:耗时2205ms,占用内存194.1MB。

相关文章:

LeetCode笔记:Biweekly Contest 99

LeetCode笔记:Biweekly Contest 99 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-99 1. 题目一…...

初探富文本之CRDT协同实例

初探富文本之CRDT协同实例 在前边初探富文本之CRDT协同算法一文中我们探讨了为什么需要协同、分布式的最终一致性理论、偏序集与半格的概念、为什么需要有偏序关系、如何通过数据结构避免冲突、分布式系统如何进行同步调度等等,这些属于完成协同所需要了解的基础知…...

团队死气沉沉?10种玩法激活你的项目团队拥有超强凝聚力

作为项目经理和PMO,以及管理者最头疼的是团队的氛围和凝聚力,经常会发现团队死气沉沉,默不作声,你想尽办法也不能激活团队,也很难凝聚团队。这样的项目团队你很难带领大家去打胜仗,攻克堡垒。但是如何才能避…...

Spring三级缓存核心思想

spring在启动时候&#xff0c;会创建bean&#xff0c;并给bean填充属性&#xff0c;这事会使用到三级缓存 private final Map<String, Object> singletonObjects new ConcurrentHashMap<>(256); //一级缓存private final Map<String, Object> earlySingleto…...

深度学习算法训练和部署流程介绍--让初学者一篇文章彻底理解算法训练和部署流程

目录 1 什么是深度学习算法 2 算法训练 2.1 训练的原理 2.2 名词解释 3 算法C部署 3.1 嵌入式终端板子部署 3.3.1 tpu npu推理 3.3.2 cpu推理 3.2 服务器部署 3.2.1 智能推理 3.2.2 CPU推理 1 什么是深度学习算法 这里不去写复杂的概念&#xff0c;就用通俗的话说…...

计算机网络整理

TCP与UDP 介绍 HTTP&#xff1a;&#xff08;HyperText Transport Protocol&#xff09;是超文本传输协议的缩写&#xff0c;它用于传送WWW方式的数据&#xff0c;关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。 TCP:&#xff08;Transmission Contro…...

闲人闲谈PS之三十八——混合制生产下WBS-BOM价格发布增强

惯例闲话&#xff1a;最近中《三体》的毒很深&#xff0c;可能是电视剧版确实给闲人这种原著粉带来太多的感动&#xff0c;又一次引发了怀旧的热潮&#xff0c;《我的三体-罗辑传》是每天睡前必刷的视频&#xff0c;结尾BGM太燃了。闲人对其中一句台词感触很深——人类不感谢罗…...

Java 根类 Object

java.lang.Object 是 Java 类层次结构中的根类&#xff0c;所有类都直接或间接实现了此类的方法。 Object API 源码 package java.lang;public class Object {private static native void registerNatives();static {registerNatives();}public final native Class<?>…...

04_Apache Pulsar的可视化监控管理、Apache Pulsar的可视化监控部署

1.4.Apache Pulsar的可视化监控管理 1.4.1.Apache Pulsar的可视化监控部署 1.4.Apache Pulsar的可视化监控管理 1.4.1.Apache Pulsar的可视化监控部署 第一步&#xff1a;下载Pulsar-Manager https://archive.apache.org/dist/pulsar/pulsar-manager/pulsar-manager-0.2.0/…...

【算法】期末复盘,酒店住宿问题——勿向思想僵化前进

文章目录前言题目描述卡在哪里代码&#xff08;C&#xff09;前言 省流&#xff1a;一个人也可以住双人间&#xff0c;如果便宜的话。 害&#xff01;尚正值青春年华&#xff0c;黄金岁月&#xff0c;小脑瓜子就已经不灵光咯。好在我在考试的最后一分钟还是成功通过了这题&am…...

Java中的Comparator 与 Comparable详解

Comparator VS Comparable1. Comparator1.1 对一维数组进行排序1.2 对二维数组进行排序1.3 对对象数组进行排序2. Comparable3. 二者区别1. Comparator 通过源码发现Comparator是一个接口。 根据compare方法中的注释可以发现方法返回三种类型的值&#xff0c;正数、零、负数&a…...

计算机科学导论笔记(二)

三、数据存储 3.1 数据类型 计算机行业中使用术语“多媒体”来定义包含数字、文本、音频、图像和视频的信息。 位&#xff1a;bit&#xff0c;binary digit的缩写&#xff0c;是存储在计算机中的最小单位&#xff0c;它是0或1. 位模式&#xff1a;为了表示数据的不同类型&a…...

GEC6818开发板JPG图像显示,科大讯飞离线语音识别包Linux_aitalk_exp1227_1398d7c6运行demo程序,开发板实现录音

GEC6818开发板JPG图像显示 | 开发板实现录音一.GEC6818开发板JPG图像显示1.jpg图片特性2.如何解压缩jpg图片1.对jpegsrc.v8c.tar.gz进行arm移植2.进入~/jpeg-8c对jpeg库进行配置3.编译4.安装&#xff0c;将动态库存放到 /home/gec/armJPegLib5.清空编译记录6.自己查看下 /home/…...

如何判断树莓派通过GPIO与5G模块成功连接?

如果想要判断自己是否成功连接了树莓派与5G模块&#xff0c;可以通过以下方式进行判断&#xff1a; 查看设备连接状态&#xff1a;可以通过在树莓派终端中执行lsusb命令来查看USB设备的连接状态&#xff0c;如果5G模块被识别到&#xff0c;则会显示相关的设备信息。如果提示lsu…...

Java——包装类和List及ArrayList

目录 包装类&#xff08;Wrapped Class) 包装类的使用---装箱和拆箱 自动装箱和自动拆箱 Integer的易错题 javap反编译工具 List接口的使用 方法 ArrayList 使用 打印 区别 扩容机制 ArrayList练习 字符集合 杨辉三角 ​编辑 包装类&#xff08;Wrapped Class) Object 引用可…...

matlab - 程序流程控制、函数文件、特殊函数、调试与优化

学习视频MATLAB代码的两种执行方式&#xff1a;命令行、程序执行。1.程序流程控制1.1.m文件matlab中m文件分为两种&#xff1a;脚本文件&函数文件。脚本文件&#xff1a;实际上是一个命令的集合&#xff0c;可认为是命令行的改良版&#xff0c;方便我们去编写命令函数文件&…...

Toponogov 比较定理及其应用

1. Toponogov 比较定理的背景来源 Victor Andreevich Toponogov&#xff08;1930-2004&#xff09; 是苏联数学家&#xff0c;Toponogov 比较定理是他的博士论文题目&#xff0c;在1958年答辩。他证明这个定理是为了用于证明截面曲率假设下的分裂定理和最大直径定理&#xff0…...

力扣sql简单篇练习(二十二)

力扣sql简单篇练习(二十二) 1 上月播放的儿童适宜电影 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # Write your MySQL query statement belowSELECT titleFROM ContentWHERE kids_contentY AND content_typeMoviesAND c…...

【开源硬件】STM32F030R8T6系统板

【开源硬件】STM32F030R8T6系统板✅STM32F030R8T6系统板兼容极海APM32F030R8T6 &#x1f530;支持stm32cubemx工程配置成STM32F030R8T6生成的MDK工程&#xff0c;经过Keil编译后可以直接使用ST-Link v2烧录器上传到极海APM32F030R8T6芯片当中&#xff0c;完全做到平替使用&…...

ES之DSL查询文档基础查询

分类 query查询分类 总体规律就是逻辑性的&#xff0c;从外层的你干嘛&#xff0c;到下一层的查询类型&#xff0c;再到下一层的查询字段&#xff08;如果需要的话&#xff09;和然后是查询内容 查询所有 语法 get /索引库名/_serarch {"query":{"查询条件…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...