763 劃分字母區間

2021-10-05 03:18:03 字數 555 閱讀 9829

示例 1:

輸入: s = "ababcbacadefegdehijhklij"

輸出: [9,7,8]

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

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

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

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

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

貪心演算法,其實也就是我們自己算差不多,先從第乙個開始查詢到最後一次出現改元素的位置,進行乙個標記,再從這個區間進行範圍的擴充套件,也就是將所有的元素遍歷一遍。

class solution 

int begin = 0;

int tempmaxindex = 0;

listlist = new arraylist<>();

for (int j = 0; j < s.length(); j++)

}return list;

}}

763 劃分字母區間

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

763 劃分字母區間

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

763 劃分字母區間

字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。可以統計字串中每個字元的最後出現位置,然後使用雙指標start和end從字串頭開始,由於同一字母只能出現在其中乙個片段,所以end max end,index s...