Re: [閒聊] 每日leetcode
看板Marginalman作者enmeitiryous (enmeitiryous)時間1年前 (2024/08/06 19:27)推噓0(0推 0噓 0→)留言0則, 0人參與討論串652/1549 (看更多)
3016 minimum push to type words II
題目:給你一個字串words,你可以以類似鍵盤手機分配字母的方式將字母分配到
2-9的按鍵上,求出以一種最有效率的分配法來去分配字母後的最小輸入數
思路:依照字母出現頻率由大到小依序分配到按鍵的第一位分配完八種字母後
再將剩下字母分配到第二位以此類推,寫完看到成績爆爛後想了下字母到底是
啥根本不重要重要是一出現次數去分配就好 唉
class Solution {
public:
int minimumPushes(string word) {
unordered_map<char,int> pre_ans;
for(auto k:word){
pre_ans[k]++;
}
vector<char> bre_ans;
for(auto k:pre_ans){
bre_ans.push_back(k.first);
}
sort(bre_ans.begin(),bre_ans.end(),[&](char a,char b){return
pre_ans[a]>pre_ans[b];});
int ans=0;
for(int i=0;i<bre_ans.size();++i){
ans+=(i/8+1)*pre_ans[bre_ans[i]];
}
return ans;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.16.83 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1722943624.A.214.html
討論串 (同標題文章)
完整討論串 (本文為第 652 之 1549 篇):