动态规划,往前回滚
class Solution {
public int mincostTickets(int[] days, int[] costs) {
int len = days.length;
int min = days[0];
int max = days[len-1];
int[] dp = new int[max+31];
for(int d = max,i=len-1;d>=min;d--){
if(d == days[i]){
dp[d] = Math.min(dp[d+1]+costs[0],dp[d+7]+costs[1]);
dp[d] = Math.min(dp[d],dp[d+30]+costs[2]);
i--;
}else{
dp[d] = dp[d+1];
}
}
return dp[min];
}
}
本文介绍了一种使用动态规划算法解决旅行者如何在特定日期内以最低成本完成旅行的问题。通过逆向遍历和比较不同策略的成本,实现了对旅行成本的最小化。
352

被折叠的 条评论
为什么被折叠?



