C 刷題 leetcode貪心系列 四

2021-10-22 16:14:22 字數 796 閱讀 2403

字串 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刷題系列(六)貪心演算法

在某乙個標準下,優先考慮最滿足標準的樣本,最後考慮最不滿足標準的樣本,最終得到乙個答案的演算法,叫作貪心演算法。也就是說,不從整體最優上加以考慮,所做出的是在某種意義上的區域性最優解。如何從區域性最優達到全域性最優解?舉反例和對數器來進行證明。對於給定的糖果和孩子胃口,看能最多滿足多少孩子。解題思路...