| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> LeetCode 力扣周赛 282 -> 正文阅读 |
|
[数据结构与算法]LeetCode 力扣周赛 282 |
周赛传送门个人感觉第四题好有难度,写的我直头晕。 统计包含给定前缀的字符串思路: 时间复杂度: O ( n ) \mathrel{O}(n) O(n) 空间复杂度: O ( 1 ) \mathrel{O}(1) O(1)
因此,可根据返回值是否为
使两字符串互为字母异位词的最少步骤数思路:统计数量 时间复杂度: O ( ∣ s ∣ + ∣ t ∣ + ∣ ∑ ∣ ) \mathrel{O}(|s|+|t|+|\sum|) O(∣s∣+∣t∣+∣∑∣) 空间复杂度: O ( ∣ ∑ ∣ ) \mathrel{O}(|\sum|) O(∣∑∣) 对于每一种字符 c c c,统计在两个字符串中的数量差记为 d d d,并向较少的那个字符串添加 d d d 个 c c c 即可。因此将 a b s ( d ) abs(d) abs(d) 累加起来即为答案。
完成旅途的最少时间思路:二分 时间复杂度: O ( n ln ? t ) \mathrel{O}(n\ln{t}) O(nlnt)。 t t t 为答案上限,由数据范围可知,取 1 e 14 1e14 1e14 即可。 空间复杂度: O ( 1 ) \mathrel{O}(1) O(1)。 设有函数
f
(
c
)
f(c)
f(c) 如下: c c c 为花费时间, f ( c ) f(c) f(c) 即为每辆车能完成旅途数的总和。显然,随着 c c c 的增大, f ( c ) f(c) f(c) 必然是单调递增的。又有题目的数据范围可知,答案必在 [ 1 , 1 e 14 ] [1,1e14] [1,1e14] 内。因此在该范围内二分 c c c 即可。
完成比赛的最少时间思路:动态规划,贪心 时间复杂度: O ( ( T + L ) ? c ) \mathrel{O}((T+L)*c) O((T+L)?c), T T T 为轮胎种数, L L L 为圈数, c c c 为单个轮胎的圈数上限。 空间复杂度: O ( L + n ) \mathrel{O}(L+n) O(L+n) 设有一维数组
d
p
dp
dp,
d
p
i
dp_i
dpi? 表示 跑完第
i
i
i 圈的最短时间,则有: o p t c opt_c optc? 表示连续跑完 c c c 圈不换胎的最短时间。考虑到 c h a n g e T i m e changeTime changeTime 的取值上限为 1 e 5 1e5 1e5, r r r 的最小取值为 2 2 2。又有 2 1 8 > 1 e 5 2^18 \gt 1e5 218>1e5,因此 c c c 的上限可取 18。 另外,需要注意计算过程中由圈数过大引起的溢出问题,对于超出
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 15:32:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |