Skip to content

Commit cf9d207

Browse files
authored
Create display-table-of-food-orders-in-a-restaurant.cpp
1 parent 6814667 commit cf9d207

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Time: O(n + tlogt + flogf)
2+
// Space: O(n)
3+
4+
class Solution {
5+
public:
6+
vector<vector<string>> displayTable(vector<vector<string>>& orders) {
7+
map<int, unordered_map<string, int>> table_count;
8+
set<string> foods;
9+
for (const auto& order : orders) {
10+
++table_count[stoi(order[1])][order[2]];
11+
foods.emplace(order[2]);
12+
}
13+
vector<vector<string>> result = {{"Table"}};
14+
copy(foods.cbegin(), foods.cend(), back_inserter(result.back()));
15+
for (const auto& kvp: table_count) {
16+
result.push_back({to_string(kvp.first)});
17+
transform(foods.cbegin(), foods.cend(), back_inserter(result.back()),
18+
[&kvp](const auto& food) {
19+
return to_string(kvp.second.count(food) ? kvp.second.at(food) : 0);
20+
});
21+
}
22+
return result;
23+
}
24+
};

0 commit comments

Comments
 (0)