leetcodeLCP 19. 秋叶收藏集/动态规划
文章目录
- 题目:
- 基本思想:动态规划
题目:
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 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. 秋叶收藏集/动态规划相关推荐
- LCP 19. 秋叶收藏集
链接:LCP 19. 秋叶收藏集 class Solution {public:int minimumOperations(string leaves) {vector<vector<in ...
- LeetCode LCP 19 秋叶收藏集 HERODING的LeetCode之路
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...
- 力扣算法题-19.秋叶收藏集 C语言实现
题目 小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片 ...
- LCP 15:秋叶收藏集(动态规划||前缀和)
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...
- leetcode LCP 19. 秋叶收藏集(dp)
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...
- [Leetcode][LCP 19][JAVA][秋叶收藏集][动态规划]
[问题描述][中等] [解答思路] 1. 动态规划 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public int minimumOperations(String ...
- 秋叶收藏集, 动态规划 leetcode LCP 19
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...
- 诗意的题目 秋叶收藏集
https://leetcode-cn.com/problems/UlBDOe/solution/qiu-xie-shou-cang-ji-by-leetcode-solution/ 这个动态规划还是 ...
- 学习实践 - 收藏集 - 掘金
2道面试题:输入URL按回车&HTTP2 - 掘金 通过几轮面试,我发现真正那种问答的技术面,写一堆项目真不如去刷技术文章作用大,因此刷了一段时间的博客和掘金,整理下曾经被问到的2道面试题 从 ...
最新文章
- JQuery:JQuery捕获HTML
- Python字符串基本操作
- os和sys模块的常用方法
- 程序员求职面试三部曲之一:选择合适的工作单位
- Java并发编程(01):线程的创建方式,状态周期管理
- 浅析vue2.0的diff算法
- GO语言练习:第二个工程--模拟音乐播放器
- 如何在idea中设置Tomcat热部署
- QQ和微信一键加群加好友链接代码实现
- 期货及衍生品基础 - 概述总结
- sina邮箱的发件服务器拒绝,向新浪sina邮箱发信常见退信说明
- 【日用】获取pfx证书序列号
- ERC-3525 通过倒计时|SFT 是什么?有什么用?
- 爬虫入门经典(九) | 简单一文教你如何爬取扇贝单词
- Faster-RCN训练和入门使用--Pytorch版本
- Android简易计分器
- 微型计算机断电后信息将会丢失,2018年职称计算机考试题库(20)
- Thinkpad笔记本验机2
- win7无线局域网_存储卡具备WiFi有多方便?东芝 FlashAir 无线存储卡上手体验
- Mysql基础-------初识数据库,三大范式