当前位置:网站首页>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)的空间
边栏推荐
猜你喜欢
随机推荐
fastposter v2.9.0 程序员必备海报生成器
error:Illegal instruction (core dumped),离线下载安装这个other版本numpy
EasyExcel implements dynamic column parsing and table storage
[Unity Getting Started Plan] Basic Concepts (6) - Sprite Renderer Sprite Renderer
为什么我用了Redis之后,系统的性能却没有提升
Web3 安全风险令人生畏?应该如何应对?
Detailed explanation of setting HiSilicon MMZ memory and OS memory
数字资产的价值激发:NFT 质押
Description of the functional scenario of "collective storage and general governance" in the data center
C专家编程 第1章 C:穿越时空的迷雾 1.10 “安静的改变”究竟有多少安静
中小微企业如何简单便捷、低成本实现数字化?360视觉云有妙招
双指针/滑动窗口问题
从MatePad Pro进化看鸿蒙OS的生态势能
【Metaverse系列一】元宇宙的奥秘
The strongest distributed lock tool: Redisson
C专家编程 第1章 C:穿越时空的迷雾 1.7 编译限制
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
出海,是泡泡玛特的“解药”吗?
被误解的 MVC 和被神化的 MVVM(一)
TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践