LeetCode 983 最低票價

2021-10-05 19:52:05 字數 1035 閱讀 9755

動態規劃的思想。我們不僅要從開始往後找最優解。像這種能晚發生就晚發生的可以逆向,從後往前找。

在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。

火車票有三種不同的銷售方式:

一張為期一天的通行證售價為 costs[0] 美元;

一張為期七天的通行證售價為 costs[1] 美元;

一張為期三十天的通行證售價為 costs[2] 美元。

通行證允許數天無限制的旅行。 例如,如果我們在第 2 天獲得一張為期 7 天的通行證,那麼我們可以連著旅行 7 天:第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 7 天和第 8 天。

返回你想要完成在給定的列表 days 中列出的每一天的旅行所需要的最低消費。

看了題解的提示有了思路:從後往前,如果從第i天開始到最後,那麼我最便宜需要多少錢?而第i天如果沒有要出行,則不需要買;需要出行則有三種方案:a.買1天的,再加上後一天到最後的最便宜**;b.買7天的,再加上7天後的那天到最後一天最便宜的**;c.買30天的,再加上30天後的那天到最後一天最便宜的**。

public int mincosttickets(int days, int costs) 

if( days[daysindex] + 6 >= yearnum)

if(days[daysindex] + 29 >= yearnum)

daysmoney[i] = math.min(costs[0] + daysmoney[i+1], costs[1] + daysmoney[i+7]);

daysmoney[i] = math.min(daysmoney[i], costs[2] + daysmoney[i + 30]);

daysindex--;

if(daysindex < 0)

return daysmoney[i];

}else

}return daysmoney[0];

}

LeetCode 983 最低票價

在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 一張為期一天的通行證售價為 costs 0 美元 一張為期七天的通行證售價為 costs 1 美元 一張...

LeetCode983 最低票價

在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為days的陣列給出。每一項是乙個從1到365的整數。火車票有三種不同的銷售方式 通行證允許數天無限制的旅行。例如,如果我們在第 2 天獲得一張為期 7 天的通行證,那麼我們可以連著旅行 7 天 第...

leetcode983 最低票價

在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的整數。火車票有三種不同的銷售方式 一張為期一天的通行證售價為 costs 0 美元 一張為期七天的通行證售價為 costs 1 美元 一張...