leetcode763 劃分字母區間

2021-09-29 01:53:50 字數 700 閱讀 5437

字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。

示例 1:

輸入: s = 「ababcbacadefegdehijhklij」

輸出: [9,7,8]

解釋:劃分結果為 「ababcbaca」, 「defegde」, 「hijhklij」。

每個字母最多出現在乙個片段中。

像 「ababcbacadefegde」, 「hijhklij」 的劃分是錯誤的,因為劃分的片段數較少。

注意:s的長度在[1, 500]之間。

s只包含小寫字母』a』到』z』。

思路:實在不怎麼貪心,看了別人的思路。

就是每次貪 最右邊的字母,重複出現的最右邊,然後借助map優化,在o(1)的時間。

同時,這裡的同乙個片段中,end 值最大會被儲存下來。同一區間之內的end小於那個最大的end,當end==j時,即找到了那個最大的區間,再更新start = end+1;來方便下一次劃分區間。

class

solution

int end =0;

int start =0;

for(

int j =

0;jlength()

;j++)}

return s;

}}

Leetcode 763 劃分字母區間

字串s由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每個字...

Leetcode763 劃分字母區間

problem describe 字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca d...

Leetcode 763 劃分字母區間

字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每...