当前位置:网站首页>leetcode-每日一题899. 有序队列(思维题)
leetcode-每日一题899. 有序队列(思维题)
2022-08-03 16:53:00 【lin钟一】

题目链接:https://leetcode.cn/problems/orderly-queue/
思路
方式一、思维
计算字典序最小的字符串,我们需要讨论k = 1 和 k > 1时两种情况
当k = 1时,我们每次取 i 个首字符并将其移动到字符串末尾,对比找最小的字典序字符串即可
当k > 1时,一定可以经过移动将字符串s变成字符串按照升序排序
代码示例
func orderlyQueue(s string, k int) string {
if k == 1{
ans := s
for i := 1; i < len(s); i++{
s = s[1:] + s[:1]
if s < ans{
ans = s
}
}
return ans
}
ans := []byte(s)
sort.Slice(ans, func(i, j int) bool {
return ans[i] < ans[j]})
return string(ans)
}
复杂度分析
- 时间复杂度:O(n2),其中n时字符串长度
- 当k = 1时,需要遍历n个字符串排列,每个字符串需要O(n)来判断是否为字典序最小,需要O(n2)的时间
- 当k > 1时,对字符串进行排序,需要O(n logn)的时间
- 空间复杂度:O(n),其中n时字符串长度,需要额外申请O(n)的空间
边栏推荐
- ORACLE CLOUD 在国内有数据中心吗?
- 【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
- C专家编程 第3章 分析C语言的声明 3.5 typedef可以成为你的朋友
- LeetCode·899.有序队列·最小表示法
- 关于oracle表空间在线碎片整理
- 新特性解读 | MySQL 8.0 在线调整 REDO
- [redis] cache penetration and cache avalanche and cache breakdown solutions
- SQL中对 datetime 类型操作
- C专家编程 第3章 分析C语言的声明 3.3 优先级规则
- 虹科分享 | 如何测试与验证复杂的FPGA设计(3)——硬件测试
猜你喜欢
随机推荐
测试测试测试
“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?
黄致绮 荣获第六季完美童模全球总决赛 全国总冠军
Adobe是什么?
11. Container With Most Water
FinClip | 2022 年 7 月产品大事记
Auto Scaling 弹性伸缩(运维释放人力)
C语言01、数据类型、变量常量、字符串、转义字符、注释
被误解的 MVC 和被神化的 MVVM(二)
SwinIR实战:详细记录SwinIR的训练过程
出海,是泡泡玛特的“解药”吗?
怎么在opengauss中进行测试自己添加的新函数的性能(循环n次的运行时间)?
软考 --- 软件工程(1)概念、开发模型
Detailed explanation of setting HiSilicon MMZ memory and OS memory
Component communication - parent-child component communication
掌握Redis的Sentinel哨兵原理,可助你拿到25k的offer
附录A 程序员工作面试的秘密
如何选择合适的导电滑环型号
基于DMS的数仓智能运维服务,知多少?
Async的线程池使用的哪个?









