字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同一字母最多出現在乙個片段中。返回乙個表示每個字串片段的長度的列表。
示例
輸入:s = 「ababcbacadefegdehijhklij」輸出:[9,7,8]
解釋:劃分結果為 「ababcbaca」, 「defegde」, 「hijhklij」。
每個字母最多出現在乙個片段中。
像 「ababcbacadefegde」, 「hijhklij」 的劃分是錯誤的,因為劃分的片段數較少。
提示
s的長度在[1, 500]之間。s只包含小寫字母 『a』 到 『z』 。
本題採用的方法是確定每個區間的最大邊界。具體方法是先定義乙個下標陣列來儲存每個字元的最大下標,再對字串s遍歷,找到每個區間的最大邊界即可。
class
solution
#長度起始點
int lf =0;
#長度終點
int rt =0;
#迴圈找到每個區間的最大邊界
for(int i=
0;ireturn result;}}
;
C 刷題 leetcode貪心系列 一
1.老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。2.你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。3.評分更高的孩子必須比他兩側的鄰位孩子獲得更多的糖果。4.那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸...
C 刷題 leetcode貪心系列 二
給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1,2 1,...
Leetcode刷題系列(六)貪心演算法
在某乙個標準下,優先考慮最滿足標準的樣本,最後考慮最不滿足標準的樣本,最終得到乙個答案的演算法,叫作貪心演算法。也就是說,不從整體最優上加以考慮,所做出的是在某種意義上的區域性最優解。如何從區域性最優達到全域性最優解?舉反例和對數器來進行證明。對於給定的糖果和孩子胃口,看能最多滿足多少孩子。解題思路...