当前位置:网站首页>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)的空间
边栏推荐
- How to write SQL statements in DataWorks monitoring data reaches a certain value to indicate the change of
- 【Metaverse系列一】元宇宙的奥秘
- 出海,是泡泡玛特的“解药”吗?
- C专家编程 第2章 这不是Bug,而是语言特性 2.1 这关语言特性何事,在Fortran里这就是Bug呀
- C专家编程 第3章 分析C语言的声明 3.1 只有编译器才会喜欢的语法
- 虹科分享 | 如何测试与验证复杂的FPGA设计(3)——硬件测试
- C专家编程 第2章 这不是Bug,而是语言特性 2.4 少做之过
- sphinx coreseek的安装和php下使用
- Hannah荣获第六季完美童模全球总决赛全球人气总冠军
- C# 构造函数如人之影子
猜你喜欢
sphinx coreseek的安装和php下使用
大型企业数据治理的现状和解决方案有哪些参考?_光点科技
leetcode:202. 快乐数
[redis] cache penetration and cache avalanche and cache breakdown solutions
Web3的开源为何会如此受到人们喜爱?
2年开发经验去面试,吊打面试官,即将面试的程序员这些笔记建议复习
EasyExcel implements dynamic column parsing and table storage
面试突击:什么是粘包和半包?怎么解决?
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
最强分布式锁工具:Redisson
随机推荐
C专家编程 第3章 分析C语言的声明 3.8 理解所有分析过程的代码段
Promise的 简单使用
security加密解密
关于oracle表空间在线碎片整理
高效的组织信息共享知识库是一种宝贵的资源
JS中对象数组用sort按属性排序
【系统学习编程-编程入门-全民编程 视频教程】
中小微企业如何简单便捷、低成本实现数字化?360视觉云有妙招
uniapp 去掉默认导航栏
【目标检测】Focal Loss for Dense Object Detection
EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
C专家编程 第3章 分析C语言的声明 3.4 通过图标分析C语言的声明
C专家编程 第1章 C:穿越时空的迷雾 1.6 它很棒,但它符合标准吗
C专家编程 第3章 分析C语言的声明 3.2 声明是如何形成的
Detailed explanation of setting HiSilicon MMZ memory and OS memory
组件通信-父传子组件通信
sibling component communication context
EA 改口,称单人游戏是产品组合中“非常重要的一部分”
C专家编程 第3章 分析C语言的声明 3.5 typedef可以成为你的朋友
Web3的开源为何会如此受到人们喜爱?