Design a Food Rating System | LeetCode

vc7-avatar-img
發佈於LeetCode
更新 發佈閱讀 4 分鐘

題目

https://leetcode.com/problems/design-a-food-rating-system/editorial/?envType=daily-question&envId=2025-09-17

日期

2025/09/17

困惑點

在 LeetCode 的 Swift 語言看起來可以用 swift-collection 的 Heap 。但是不確定是用了哪個版本,用了 removeAll 會報錯說找不到這個方法,但是在 Xcode 裡面卻能夠執行。

程式碼

import Collections

class FoodRatings {

var cuisineHeaps: [String: Heap<Food>] = [:]
var foodToCuisine: [String: String] = [:]
var foodToRating: [String: Int] = [:]

init(_ foods: [String], _ cuisines: [String], _ ratings: [Int]) {
for i in foods.indices {
let ratedFood = Food(food: foods[i], rating: ratings[i])
cuisineHeaps[cuisines[i], default: Heap()].insert(ratedFood)
foodToCuisine[foods[i]] = cuisines[i]
foodToRating[foods[i]] = ratings[i]
}
}

func changeRating(_ food: String, _ newRating: Int) {
guard let cuisine = foodToCuisine[food] else { return }
let ratedFood = Food(food: food, rating: newRating)
cuisineHeaps[cuisine]?.removeAll { $0.food == food }
cuisineHeaps[cuisine]?.insert(ratedFood)
foodToRating[food] = newRating
}

func highestRated(_ cuisine: String) -> String {
cuisineHeaps[cuisine]?.max?.food ?? ""
}

}

struct Food: Comparable {
let food: String
let rating: Int
static func < (lhs: Food, rhs: Food) -> Bool {
if lhs.rating == rhs.rating {
return lhs.food > rhs.food
} else {
return lhs.rating < rhs.rating
}
}
}
留言
avatar-img
留言分享你的想法!
avatar-img
萱寫寫
2會員
16內容數
讀書心得、活動參加心得
萱寫寫的其他內容
2025/09/16
2025/09/16
2025/09/15
2025/09/15
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
手寫版,有寫錯或看不懂的地方,都可以在底下留言給我。 感謝!
Thumbnail
手寫版,有寫錯或看不懂的地方,都可以在底下留言給我。 感謝!
Thumbnail
放了很多圖片的解答(一直複製貼上好累ㄚ)
Thumbnail
放了很多圖片的解答(一直複製貼上好累ㄚ)
Thumbnail
高中數學主題練習—求等比數列某項與等差級數
Thumbnail
高中數學主題練習—求等比數列某項與等差級數
Thumbnail
高中數學主題練習—求等差數列某項與等差級數
Thumbnail
高中數學主題練習—求等差數列某項與等差級數
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News