ETH官方钱包

前往
大廳
主題

LeetCode - 2739. Total Distance Traveled 解題心得

Not In My Back Yard | 2024-08-29 12:00:04 | 巴幣 100 | 人氣 77

題目連結(jié):


題目意譯:
有一臺卡車有兩個油箱。你被給定兩個整數(shù) mainTank 和 additionalTank。前者代表著主油箱中的汽油升數(shù)、後者為附加油箱的汽油升數(shù)。

該卡車每公升可以跑 10 公里。而每當(dāng)主油箱使用掉 5 公升的汽油後,如果附加油箱有至少 1 公升的汽油,則會有 1 公升的汽油被從附加油箱轉(zhuǎn)移至主油箱。

回傳該卡車可以行駛的最長距離。

注: 從附加油箱注入的汽油不是連續(xù)的。其將會每消耗 5 公升的那一瞬間注入並馬上完成動作。

限制:
1 ≦ mainTank, additionalTank ≦ 100



範(fàn)例測資:
範(fàn)例 1:
輸入: mainTank = 5, additionalTank = 10
輸出: 60
解釋:
消耗 5 公升汽油後,汽油量為 (5 - 5 + 1) = 1 公升。而行駛距離為 50 公里。
再消耗 1 公升汽油後,沒有其他汽油注入到主油箱中,因此主油箱空了。
總行駛距離為 60 公里。

範(fàn)例 2:
輸入: mainTank = 1, additionalTank = 2
輸出: 10
解釋:
消耗 1 公升汽油後,主油箱就空了。
總行駛距離為 10 公里。


解題思維:
雖然模擬即可。

但是如果我們假設(shè) additionalTank 無限大,則此題則變?yōu)轭愃?a target="_blank">這題的題目(對於該題而言,本題會是 n = mainTank 、 k = 5 的情況)。

因此所求將會是 (n + floor((n - 1) / 4)) × 10 公里。但是 additionalTank 並非無限大,但沒關(guān)係,這個只是會把我們新得到 floor((n - 1) / 4) 公升的汽油設(shè)立一個上限而已。

因此真正的所求會是
(n + min(floor((n - 1) / 4), additionalTank)) × 10
公里。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

相關(guān)創(chuàng)作

更多創(chuàng)作