Re: [閒聊] 每日LeetCode

作者: ZooseWu (N5)   2023-11-07 11:50:07
1921. Eliminate Maximum Number of Monsters
你在玩一個從怪物手中保護城市的電子遊戲
一共有n隻怪物
第i隻怪物距離dist[i]公尺
並以spped[i]公尺/分的速度朝城市前進
如果怪物到達城市便輸了並結束遊戲
你有一把武器需要充能後便可使用
使用一次可消滅一隻怪物
接下來需要一分鐘的時間充能
遊戲開始時武器是已經完整充能的狀態
如果充能完畢的同時怪物到達城市
則你沒辦法消滅那隻怪物並同時判輸
回傳在你輸之前能消滅的最大怪物數量
或是你不會輸的話就回傳總怪物數量n
題目敘述不少但機制其實蠻單純的
Approach:
蠻簡單的題目
可能是因為本身就在做遊戲的關係
這種應用題對我而言本來就是遊戲設計的過程中會進行的腦中模擬
先把所有怪物的到達時間算出來
就能知道每隻怪物多久會到達城市
之後排序後跑一次迴圈
看什麼時候index >= 到達時間
就能知道最多能消滅幾隻怪物
TS Code:
function eliminateMaximum (dist: number[], speed: number[]): number {
const time: number[] = []
for (let i = 0; i < dist.length; i++) {
time.push(Math.ceil(dist[i] / speed[i]))
}
time.sort((a, b) => (a - b))
for (let i = 0; i < time.length; i++) {
if (i >= time[i])return i
}
return time.length
}
作者: oin1104 (是oin的說)   2023-11-07 11:57:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com