《算法集训传送门》
👉引言
铭记于心 | ||
---|---|---|
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉 |
💖
❄️我们的算法之路❄️💖
众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs),💝宽度优先搜索(bfs),💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉
今日主题:线段树
👉⭐️第一题💎
✨题目
菜品排序通过哈希加排序实现,桌号菜品统计通过红黑树嵌套哈希表实现(相当于直接存储了所有未排序的信息)
✨代码:
class Solution {
public:
vector<vector<string>> displayTable(vector<vector<string>>& orders) {
unordered_set<string> s_food;
map<int, unordered_map<string, int>> mp_table;
for (auto i : orders)
{
++mp_table[stoi(i[1])][i[2]];
s_food.insert(i[2]);
}
vector<string> v_food(s_food.begin(), s_food.end());
sort(v_food.begin(), v_food.end());
vector<vector<string>> ans(1 + mp_table.size(), vector<string>(1 + v_food.size(), "0"));
ans[0][0] = "Table";
int index = 1;
for (auto i : v_food)
{
ans[0][index++] = i;
}
auto it = mp_table.begin();
for (int i = 1; i < ans.size(); ++i)
{
ans[i][0] = to_string(it->first);
for (int j = 1; j < ans[0].size(); ++j)
{
ans[i][j] = to_string(it->second[ans[0][j]]);
}
++it;
}
return ans;
}
};
🌹写在最后💖:
相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹