文章目录

  • 题目:
  • 基本思想:动态规划

题目:

小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。
出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等,但均需大于等于 1。每次调整操作,小扣可以将一片红叶替换成黄叶或者将一片黄叶替换成红叶。请问小扣最少需要多少次调整操作才能将秋叶收藏集调整完毕。

示例 1:

输入:leaves = "rrryyyrryyyrr"输出:2解释:调整两次,将中间的两片红叶替换成黄叶,得到 "rrryyyyyyyyrr"

示例 2:

输入:leaves = "ryr"输出:0解释:已符合要求,不需要额外操作

提示:

  • 3 <= leaves.length <= 10^5
  • leaves 中只包含字符 ‘r’ 和字符 ‘y’

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/UlBDOe
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

基本思想:动态规划

参考:https://leetcode-cn.com/problems/UlBDOe/solution/qiu-xie-shou-cang-ji-by-leetcode-solution/

  • dp[i][j]:表示第 i 个位置时,处于状态 j 时的最小调整次数
  • 状态:每一个位置
  • 选择:每一个位置有三种选择,前面红色,中间黄色,后面红色
  • 状态转移方程:前面红色只能从前面红色这个状态转移,中间黄色可以从前面红色或者中间黄色这两种状态转移,后面红色可以从中间黄色或者后面红色这两个状态转移
  • 最终结果:dp[leaves.size() - 1][2]
class Solution {public:int minimumOperations(string leaves) {//动态规划vector<vector<int>> dp(leaves.size(), vector<int>(3, INT_MAX - 1));dp[0][0] = (leaves[0] == 'y');for(int i = 1; i < leaves.size(); ++i){dp[i][0] = dp[i - 1][0] + (leaves[i] == 'y');//将该位置变成红色的代价dp[i][1] = min(dp[i - 1][0], dp[i - 1][1]) + (leaves[i] == 'r');//将该位置变成黄色的代价dp[i][2] = min(dp[i - 1][1], dp[i - 1][2]) + (leaves[i] == 'y');//将该位置变成红色的代价}return dp[leaves.size() - 1][2];}
};

leetcodeLCP 19. 秋叶收藏集/动态规划相关推荐

  1. LCP 19. 秋叶收藏集

    链接:LCP 19. 秋叶收藏集 class Solution {public:int minimumOperations(string leaves) {vector<vector<in ...

  2. LeetCode LCP 19 秋叶收藏集 HERODING的LeetCode之路

    小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...

  3. 力扣算法题-19.秋叶收藏集 C语言实现

    题目 小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片 ...

  4. LCP 15:秋叶收藏集(动态规划||前缀和)

    小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...

  5. leetcode LCP 19. 秋叶收藏集(dp)

    小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...

  6. [Leetcode][LCP 19][JAVA][秋叶收藏集][动态规划]

    [问题描述][中等] [解答思路] 1. 动态规划 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public int minimumOperations(String ...

  7. 秋叶收藏集, 动态规划 leetcode LCP 19

    小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...

  8. 诗意的题目 秋叶收藏集

    https://leetcode-cn.com/problems/UlBDOe/solution/qiu-xie-shou-cang-ji-by-leetcode-solution/ 这个动态规划还是 ...

  9. 学习实践 - 收藏集 - 掘金

    2道面试题:输入URL按回车&HTTP2 - 掘金 通过几轮面试,我发现真正那种问答的技术面,写一堆项目真不如去刷技术文章作用大,因此刷了一段时间的博客和掘金,整理下曾经被问到的2道面试题 从 ...

最新文章

  1. JQuery:JQuery捕获HTML
  2. Python字符串基本操作
  3. os和sys模块的常用方法
  4. 程序员求职面试三部曲之一:选择合适的工作单位
  5. Java并发编程(01):线程的创建方式,状态周期管理
  6. 浅析vue2.0的diff算法
  7. GO语言练习:第二个工程--模拟音乐播放器
  8. 如何在idea中设置Tomcat热部署
  9. QQ和微信一键加群加好友链接代码实现
  10. 期货及衍生品基础 - 概述总结
  11. sina邮箱的发件服务器拒绝,向新浪sina邮箱发信常见退信说明
  12. 【日用】获取pfx证书序列号
  13. ERC-3525 通过倒计时|SFT 是什么?有什么用?
  14. 爬虫入门经典(九) | 简单一文教你如何爬取扇贝单词
  15. Faster-RCN训练和入门使用--Pytorch版本
  16. Android简易计分器
  17. 微型计算机断电后信息将会丢失,2018年职称计算机考试题库(20)
  18. Thinkpad笔记本验机2
  19. win7无线局域网_存储卡具备WiFi有多方便?东芝 FlashAir 无线存储卡上手体验
  20. Mysql基础-------初识数据库,三大范式

热门文章

  1. 计算机视觉最新进展概览2021年10月31日到2021年11月6日
  2. 五问补盲(四)| 好用的补盲激光雷达,得满足哪些条件?
  3. ps 图片从竖屏拉伸成横屏
  4. 在excel中如何筛选重复数据_如何将Excel表中重复数据筛选出来?
  5. php 鼠标 移动 手型,css各种手型集合(css禁止手型)
  6. 厨神之路三--自制饮品
  7. linux调节伽马值软件,四个 Linux 下的“护眼”软件
  8. 机器翻译系统,主要划分为哪几大类型?
  9. NSURLSession htpps证书设置
  10. 最新安卓官方api文档完整版