lc 763.劃分字母區間(字串,雙指標)【***貪心演算法】
class Solution {
public:
vector<int> partitionLabels(string S) {
vector<int> re;
int endc[26], len=S.size();
for(int i=0;i<len;++i){
endc[S[i]-'a']=i; //記錄每種字元最後出現的位置
}
int start=0, end=0;
for(int i=0;i<len;++i){
end=max(end, endc[S[i]-'a']); //貪心演算法,end取當前start-end內部字元的最後出現位置(這樣片段可以儘量多)
if(i==end){ //end一直不變,直到遍歷到S[end],說明這裡是真正的end
re.push_back(end-start+1);
start=end+1; //start更新,end繼續隨i變化而變化
}
}
return re;
}
};
相關文章
- 763. 劃分字母區間
- 力扣:763.劃分字母區間力扣
- leetcode刷題.763. 劃分字母區間.每日打卡LeetCode
- [藍橋杯][演算法提高VIP]最大乘積 貪心 雙指標演算法指標
- 程式碼隨想錄演算法訓練營day36 | leetcode 435. 無重疊區間、763. 劃分字母區間、56. 合併區間演算法LeetCode
- 貪心演算法篇——區間問題演算法
- 貪心演算法之無重疊區間演算法
- 貪心演算法與動態規劃的區別演算法動態規劃
- 貪心演算法-找不重疊的區間段演算法
- 438. 找到字串中所有字母異位詞(暴力,雙指標)2字串指標
- LC演算法技巧總結(二):雙指標和滑動視窗技巧演算法指標
- 區間問題的貪心方法
- 程式碼隨想錄演算法訓練營第第36天 | 452. 用最少數量的箭引爆氣球、435. 無重疊區間、763.劃分字母區間演算法
- POJ 2376 Cleaning Shifts(區間貪心之區間覆蓋)
- 演算法-雙指標演算法指標
- 演算法---貪心演算法和動態規劃演算法動態規劃
- 【LeetCode】貪心演算法–分發糖果(135)LeetCode演算法
- 貪心演算法演算法
- leedcode-分發餅乾(貪心演算法)演算法
- 力扣之僅僅反轉字母(雙指標方式)力扣指標
- 雙指標相關演算法指標演算法
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 貪心演算法Dijkstra演算法
- 力扣 leetcode 435. 無重疊區間 貪心力扣LeetCode
- 動態規劃(dynamic programming)與貪心演算法(greedy algorithm)動態規劃演算法Go
- 學一下貪心演算法-學一下貪心演算法演算法
- Moving Tables(貪心演算法)演算法
- 9-貪心演算法演算法
- 「演算法思想」分治、動態規劃、回溯、貪心一鍋燉演算法動態規劃
- python 實現 割繩子問題(劍指offer 14題) 動態規劃 或者貪心演算法Python動態規劃演算法
- 雙指標指標
- <二分查詢+雙指標+字首和>解決子陣列和排序後的區間和指標陣列排序
- 常用演算法之貪心演算法演算法
- 【Leetcode每日一題】316. 去除重複字母(棧,貪心)LeetCode每日一題
- 演算法基礎–貪心策略演算法
- 常見演算法技巧之——雙指標思想演算法指標
- 雙指標法指標
- LeetCode -844. 比較含退格的字串(棧、雙指標)LeetCode字串指標