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.pswp.cn/news/392914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392914.shtml
英文地址,請注明出處:http://en.pswp.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…