acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 正经题解| 追击123

    题目大意 给你一个字符串 sss 长度为 nnn,字符串中只包含 111,222,333。 题意分析 找到一个最短的区间,区间内要同时出现,111,222,333。 解题思路 对于不能改变顺序的字符串,要想到如何遍历区间,减少遍历次数。 我们设区间为 [L,R][L,R][L,R],始终保证区间是最短区间,我们可以用双指针来做。 * 初始化 L=0,R=0L = 0,R = 0L=0,R=0,一开始没有选择任何区间 * 拓展区间 R+1R+1R+1,记录当前区间内 111,222,333,出现的次数。 * 在区间满足的时候,不断缩减区间 L+1L+1L+1,同时更新111,222,333,出现的次数。 时间复杂度分析 区间中 RRR 最多拓展到 nnn,LLL 最多缩减到 nnn,复杂度为:O(2×n)O(2 \times n)O(2×n)。 代码演示

    userId_undefined

    AC君

    倔强青铜管理员
    31阅读
    0回复
    1点赞
首页