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
萱寫寫
3會員
19內容數
讀書心得、活動參加心得
萱寫寫的其他內容
2025/09/16
2025/09/16
2025/09/15
2025/09/15
看更多
你可能也想看
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
放了很多圖片的解答(一直複製貼上好累ㄚ)
Thumbnail
放了很多圖片的解答(一直複製貼上好累ㄚ)
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
高中數學主題練習—求等比數列某項與等差級數
Thumbnail
高中數學主題練習—求等比數列某項與等差級數
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
手寫版,有寫錯或看不懂的地方,都可以在底下留言給我。 感謝!
Thumbnail
手寫版,有寫錯或看不懂的地方,都可以在底下留言給我。 感謝!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News