Design a Food Rating System LeetCode solution in C++

1
class FoodRatings {
2
public:
3
unordered_map<string, set<pair<int, string>>> cuisine_ratings;
4
unordered_map<string, string> food_cuisine;
5
unordered_map<string, int> food_rating;
6
FoodRatings(vector<string> &foods, vector<string> &cuisines, vector<int> &ratings) {
7
for (int i = 0; i < foods.size(); ++i) {
8
cuisine_ratings[cuisines[i]].insert({-ratings[i], foods[i]});
9
food_cuisine[foods[i]] = cuisines[i];
10
food_rating[foods[i]] = ratings[i];
11
}
12
}
13
void changeRating(string food, int newRating) {
14
auto &cuisine = food_cuisine.find(food)->second;
15
cuisine_ratings[cuisine].erase({-food_rating[food], food});
16
cuisine_ratings[cuisine].insert({-newRating, food});
17
food_rating[food] = newRating;
18
}
19
string highestRated(string cuisine) {
20
return begin(cuisine_ratings[cuisine])->second;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0