代码:
- class Solution {
- public int mincostTickets(int[] days, int[] costs) {
- Integer[] daysArr = Arrays.stream(days).boxed().toArray(Integer[]::new);
- List
daysList = Arrays.asList(daysArr); - int n = days[days.length-1];
- int[] dp = new int[n+1];
- dp[0]=0;
- int[] arr = {1,7,30};
- int minCost = Math.min(Math.min(costs[0],costs[1]),costs[2]);
- for(int i=1;i<=n;i++){
- if(daysList.contains(i)){
- dp[i] = dp[i-1]+minCost;
- for(int j=0;j
- int day = arr[j];
- if(i-day>=0){
- dp[i] = Math.min(dp[i],dp[i-day]+costs[j]);
- }else{
- dp[i] = Math.min(dp[i],dp[0]+costs[j]);
- }
- }
- }else{
- dp[i] = dp[i-1];
- }
- // if(daysList.contains(i))System.out.println(dp[i]);
- }
- return dp[n];
- }
- }