在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。
火車票有三種不同的銷售方式:
一張為期一天的通行證售價為 costs[0] 美元;
一張為期七天的通行證售價為 costs[1] 美元;
一張為期三十天的通行證售價為 costs[2] 美元。
通行證允許數天無限制的旅行。 例如,如果我們在第 2 天獲得一張為期 7 天的通行證,那麼我們可以連著旅行 7 天:第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 7 天和第 8 天。
題解:
求出第1天到最後一天的最低消費,每天消費根據以下公式取最小值
dp[i] = math.min( dp[math.max(0, i - 1)] + costs[0], dp[math.max(0, i - 7)] + costs[1], dp[math.max(0, i - 30)] + costs[2] )
對於不在days陣列的天數直接等於之前的最低消費
/**
* @param days
* @param costs
* @return
*/var
mincosttickets
=function
(days, costs)
/* 選符合條件的最小值 */
dp[i]
= math.
min(
dp[math.
max(
0, i -1)
]+ costs[0]
, dp[math.
max(
0, i -7)
]+ costs[1]
, dp[math.
max(
0, i -30)
]+ costs[2]
) index++;}
return dp[lastday];}
;// console.log(mincosttickets([1, 4, 6, 7, 8, 20], [2, 7, 15]))//11
Leetcode 動態規劃 983 最低票價
在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 一張為期一天的通行證售價為 costs 0 美元 一張為期七天的通行證售價為 costs 1 美元 一張...
LeetCode 983 最低票價(動態規劃)
在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為days的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 通行證允許數天無限制的旅行。例如,如果我們在第 2 天獲得一張為期 7 天的通行證,那麼我們可以連著旅行 7...
LeetCode 983 最低票價(動態規劃)
在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為days的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 通行證允許數天無限制的旅行。例如,如果我們在第 2 天獲得一張為期 7 天的通行證,那麼我們可以連著旅行 7...