有關字串元素統計型別題目的一點感想
在刷leetcode時,常常會發現需要將字串中的char統計出現的頻率。其實這時我們可以構建一個陣列儲存字元出現的頻率。
string s;
vector<int> con(26,0);
for(char e:s){
con[e-'a']++;
}
例子
621. 任務排程器
給你一個用字元陣列 tasks 表示的 CPU 需要執行的任務列表。其中每個字母表示一種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。在任何一個單位時間,CPU 可以完成一個任務,或者處於待命狀態。
然而,兩個 相同種類 的任務之間必須有長度為整數 n 的冷卻時間,因此至少有連續 n 個單位時間內 CPU 在執行不同的任務,或者在待命狀態。
你需要計算完成所有任務所需要的 最短時間 。
輸入:tasks = [“A”,“A”,“A”,“B”,“B”,“B”], n = 2
輸出:8
解釋:A -> B -> (待命) -> A -> B -> (待命) -> A -> B
在本示例中,兩個相同型別任務之間必須間隔長度為 n = 2 的冷卻時間,而執行一個任務只需要一個單位時間,所以中間出現了(待命)狀態。
輸入:tasks = [“A”,“A”,“A”,“B”,“B”,“B”], n = 0
輸出:6
解釋:在這種情況下,任何大小為 6 的排列都可以滿足要求,因為 n = 0
[“A”,“A”,“A”,“B”,“B”,“B”]
[“A”,“B”,“A”,“B”,“A”,“B”]
[“B”,“B”,“B”,“A”,“A”,“A”]
…
諸如此類
輸入:tasks = [“A”,“A”,“A”,“A”,“A”,“A”,“B”,“C”,“D”,“E”,“F”,“G”], n = 2
輸出:16
解釋:一種可能的解決方案是:
A -> B -> C -> A -> D -> E -> A -> F -> G -> A -> (待命) -> (待命) -> A -> (待命) -> (待命) -> A
思路:
因為連續執行相同命令時,需要冷卻n時間,所以我們這時可以採取貪心的策略
- 相同元素間隔n個元素,首先保證出現最多頻率的元素滿足這一要求
- 在對其他元素進行在該間隔中插值
|A X X |A X X| A
根據上述桶所示可以退出最少需要(numOf(A) - 1)*n +1
class Solution {
public:
int leastInterval(vector<char>& tasks, int n) {
vector<int> con(26,0);
for(char e: tasks){
con[e-'A']++;
}
int count = 1;
int i = 0;
sort(con.rbegin(),con.rend());
while(i+1<=con.size()-1&&con[i] == con[i+1]){
i++;
count++;
}
int result = (con[0]-1)*(n+1) + count;
if(result<tasks.size()){
return tasks.size();
}else{
return result;
}
}
};
相關文章
- 關於統計軟體SAS的一點感想
- 關於程式設計師的一點感想程式設計師
- javascript型別系統——字串String型別JavaScript型別字串
- 一個關於Linq對引用型別元素集合去重問題的思考型別
- 關於重寫 v-model 的一點感想
- java中文問題和資料庫型別有關Java資料庫型別
- 東軟ACM題目的點點滴滴ACM
- 安全審計的目的是什麼?其型別都有哪些?型別
- 一些程式設計題目的解析程式設計
- elasticsearch之日期型別有點怪Elasticsearch型別
- TypeScript 字串型別TypeScript字串型別
- SCSS 字串 型別CSS字串型別
- sizeof和strlen計算陣列型別和指標型別字串陣列型別指標字串
- List<Integer>裡有可能存String型別元素嗎?型別
- 基本資料型別與字串型別資料型別字串
- 關於“50% CPU 佔有率”題目的內容擴充套件套件
- 獲取頁面中所有元素的節點型別型別
- 操作型別之字串型別字串
- String:字串型別字串型別
- 字串型別存在缺陷字串型別
- PHP:與型別有關的函式PHP型別函式
- 有關sql時間型別及格式SQL型別
- 節點型別有Follower、Candidate、Leader型別
- 日期型別有問題,如何解決?型別
- TypeScript 字串字面量型別TypeScript字串型別
- 型別自定義格式字串型別字串
- 字串型別數字order by字串型別
- 好程式設計師web前端分享CSS元素型別程式設計師Web前端CSS型別
- 幽默:關於型別的觀點演變型別
- [譯]有關Kotlin型別別名(typealias)你需要知道的一切Kotlin型別
- RPG遊戲設計探究:RPG不是一種遊戲型別而是一種遊戲元素遊戲設計型別
- 系統架構設計師感想架構
- 關於Application型別的變數一些問題。APP型別變數
- redis之字串型別(string)--計數器實現Redis字串型別
- 秒針國家統計局專案:我的一些感想和8點安全措施
- 資料型別之字串篇資料型別字串
- 基本資料型別之字串資料型別字串
- Redis的字串型別(String)Redis字串型別