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

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


示例 1:输入:leaves = "rrryyyrryyyrr"输出:2解释:调整两次,将中间的两片红叶替换成黄叶,得到 "rrryyyyyyyyrr"示例 2:输入:leaves = "ryr"输出:0解释:已符合要求,不需要额外操作提示:3 <= leaves.length <= 10^5
leaves 中只包含字符 'r' 和字符 'y'

代码

class Solution {public int minimumOperations(String leaves) {int n=leaves.length();int[][] dp=new int[n][3];//int[n][3]代表3部分 红 黄 红 数组内数字代表需要的步数dp[0][0]=leaves.charAt(0)=='r'?0:1;dp[0][1]=dp[1][2]=dp[0][2]=Integer.MAX_VALUE;//不同颜色的叶子至少为一片for(int i=1;i<n;i++){int ir=leaves.charAt(i)=='r'?1:0;int iy=leaves.charAt(i)=='y'?1:0;dp[i][0]=dp[i-1][0]+iy;//由第一部分的转移过来dp[i][1]= Math.min(dp[i-1][0],dp[i-1][1])+ir;//由第二部分或者第一部分转移过来if(i>=2)dp[i][2]= Math.min(dp[i-1][1],dp[i-1][2])+iy;//由第二部分或者第三部分转移过来}return dp[n-1][2];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

步进电机 步距角 编码器_我如何迈出了学习编码的第一步

步进电机 步距角 编码器A couple of months ago, I was chatting to a developer at work about how I’ve always wanted to learn to code but never tried.几个月前&#xff0c;我正在与一个开发人员聊天&#xff0c;讨论我一直想学习编码但从未尝试过的方法。 Coding alwa…

第五章:配置使用FastJson返回Json视图

fastJson是阿里巴巴旗下的一个开源项目之一&#xff0c;顾名思义它专门用来做快速操作Json的序列化与反序列化的组件。它是目前json解析最快的开源组件没有之一&#xff01;在这之前jaskJson是命名为快速操作json的工具&#xff0c;而当阿里巴巴的fastJson诞生后jaskjson就消声…

一加6android9玩飞车掉,解锁新速度:一加6T深度评测

解锁新速度&#xff1a;一加6T深度评测2019-11-02 14:28:595点赞2收藏4评论创作立场声明&#xff1a;我们只谈智能硬件&#xff0c;向改变生活的智能硬件Say“嗨”&#xff01;作为安卓旗舰机成员&#xff0c;一加这个品牌在玩机一类的同学手里可是大放光彩&#xff0c;各种刷机…

设计模式(第十七式:迭代器模式)

概念&#xff1a;  迭代器模式&#xff1a;Provide a way to access the elements of an aggregarte object sequentiaally with exposing its underlying representation. 提供一种访问容器对象内每个元素的一种方式&#xff0c;并且不暴露对象的一些内部细节。实现&#xf…

探讨跨域请求资源的几种方式

[转自&#xff1a;http://www.cnblogs.com/dojo-lzz/p/4265637.html] 什么是跨域JSONPproxy代理corsxdr由于浏览器同源策略&#xff0c;凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表&#xff08;来源&#xff09; JSONP 这种…

算法训练营 重编码_编码训练营适合您吗?

算法训练营 重编码by Joanna Gaudyn乔安娜高登(Joanna Gaudyn) 编码训练营适合您吗&#xff1f; (Is a Coding Bootcamp something for you?) Coding bootcamps’ popularity is growing. It sounds like a perfect idea to fast-forward your career. But is it really some…

leetcode 771. 宝石与石头(set)

给定字符串J 代表石头中宝石的类型&#xff0c;和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型&#xff0c;你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复&#xff0c;J 和 S中的所有字符都是字母。字母区分大小写&#xff0c;因此"a…

用ntdsutil命令中的restore object 更新版本号

备份域控建立好后&#xff0c;备份域信息&#xff0c;用目录还 原模式&#xff0c;还原域信息&#xff0c;用ntdsutil命令&#xff0c;中的 restore ob ject 更新版本号 本文转自9pc9com博客&#xff0c;原文链接&#xff1a; http://blog.51cto.com/215363/783334 如需…

python处理excel文件(xls和xlsx)

一、xlrd和xlwt 使用之前需要需要先安装&#xff0c;windows上如果直接在cmd中运行python则需要先执行pip3 install xlrd和pip3 install xlwt&#xff0c;如果使用pycharm则需要在项目的解释器中安装这两个模块&#xff0c;File-Settings-Project:layout-Project Interpreter&a…

html块中的内容垂直居中,css如何设置行内元素与块级元素的内容垂直居中

首先我们先了解一下行内元素和块级元素行内元素(内联元素)&#xff1a;没有自己的独立空间&#xff0c;它是依附于其他块级元素存在的&#xff0c;空间大小依附于内容多少。行内元素没有度、宽度、内外边距等属性。块级元素&#xff1a;占据独立的空间&#xff0c;具有宽度&…

Mina、Netty、Twisted一起学(五):整合protobuf

protobuf是谷歌的Protocol Buffers的简称&#xff0c;用于结构化数据和字节码之间互相转换&#xff08;序列化、反序列化&#xff09;&#xff0c;一般应用于网络传输&#xff0c;可支持多种编程语言。protobuf怎样使用这里不再介绍&#xff0c;本文主要介绍在MINA、Netty、Twi…

leetcode 1. 两数之和(map)

给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素不能使用两遍。 示例: 给定 nums [2, 7, 11, 15], target …

Redis 3.0.1 安装和配置

一、下载&#xff0c;解压和编译Redis 12345# cd /tmp # wget http://download.redis.io/releases/redis-3.0.1.tar.gz # tar xzf redis-3.0.1.tar.gz # cd redis-3.0.1 # make二、下载、安装tclsh 测试编译&#xff1a; 1# make test得到如下错误信息&#xff1a; …

2021年南宁二中高考成绩查询,2021广西高考圆满结束,6月23日可查询成绩

6月8日下午&#xff0c;2021年高考统考圆满结束。今年广西参加高考统考考生人数40.05万余人&#xff0c;比2020年增加了2.2万人。我区预计6月23日可查询高考成绩&#xff0c;6月24日起可陆续填报志愿&#xff0c;我区的网上咨询会将于6月25日至27日举办。▲高考结束&#xff0c…

29 Python - 字符与编码

字符与编码 01 字符串本质 Python字符串相关概念 字符串 str 字节 bytes 字节数组 bytearray 电脑字符串存储机制 字符库&#xff1a;A、B每个字符有一个代码点如A是65 B为66&#xff0c;这种是方便人类读写的形式&#xff0c;但是最终需要存入计算机的CPU和内存&…

Linux 内存管理与系统架构设计

Linux 提供各种模式&#xff08;比如&#xff0c;消息队列&#xff09;&#xff0c;但是最著名的是 POSIX 共享内存&#xff08;shmem&#xff0c;shared memory&#xff09;。 Linux provides a variety of schemes (such as message queues), but most notable is POSIX shar…

如何正确使用Node.js中的事件

by Usama Ashraf通过Usama Ashraf 如何正确使用Node.js中的事件 (How to use events in Node.js the right way) Before event-driven programming became popular, the standard way to communicate between different parts of an application was pretty straightforward: …

你的成功有章可循

读书笔记 作者 海军 海天装饰董事长 自我修炼是基础。通过自我学习&#xff0c;在预定目标的指引下&#xff0c;将获取的知识转化为个人能力&#xff0c;形成自我规律&#xff0c;不断循环&#xff0c;实现成功。 寻找和掌握规律&#xff0c;并熟练运用于实践&#xff0c;是成功…

98k用计算机图片,98K (HandClap)_谱友园地_中国曲谱网

《98K》文本歌词98K之歌-HandClap-抖音 制谱&#xff1a;孙世彦这首《HandClap》是Fitz&TheTantrums乐队演唱的一首歌曲&#xff0c;同时也是绝地求生中嚣张BGM&#xff0c;是一首吃鸡战歌&#xff01;这首歌谱曲者和填词者都是三个人&#xff1a;JeremyRuzumna&#xff0c…

qt之旅-1纯手写Qt界面

通过手写qt代码来认识qt程序的构成&#xff0c;以及特性。设计一个查找对话框。以下是设计过程1 新建一个empty qt project2 配置pro文件HEADERS \Find.h QT widgetsSOURCES \Find.cpp \main.cpp3 编写对话框的类代码例如以下&#xff1a;//Find.h #ifndef FIND_H #define F…