劃分字母區間
對當前的字元,遍歷找到它最後一次出現的位置,但是這個區間的長度可能小於最終長度——要對這個區間出現的字元一一進行查詢它最後一次出現的地方,並用這個去更新區間長度,直到這個區間內所有的字元都滿足要求。
時間複雜度:o(n
2)
o(n^2)
o(n2
)
class
solution
r--;}
mr =
max(mr,r);}
ans.
push_back
(mr-l+1)
; l = mr+1;
}return ans;}}
;
優化的方式很明顯,就是不要每次通過遍歷去查詢字元最後一次出現的位置,預處理一下就可以。
時間複雜度:o(n
)o(n)
o(n)
class
solution
; vector<
int>
partitionlabels
(string s)
int l=
0,r,mr;
while
(lans.
push_back
(mr-l+1)
; l = mr+1;
}return ans;}}
;
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 每...