Участник:Rublev.mv/minimum-cost-for-tickets

Материал из DISCOPAL
Перейти к: навигация, поиск
import java.util.HashSet;
import java.util.Set;
 
class Solution {
 
    public int mincostTickets(int[] days, int[] costs) {
        int count_day=366;
        int[] min_price = new int[count_day];
        Set<Integer> Days = new HashSet<>();
 
        for(int day : days){
            Days.add(day);
        }
 
        for(int i = 1; i<count_day; i++){
            if(Days.contains(i)){
                int min = Math.min(min_price[Math.max(0,i-1)]+costs[0],
                                   min_price[Math.max(0,i-7)]+costs[1]);
                min_price[i]=Math.min(min, min_price[Math.max(0,i-30)]+costs[2]);
            }else {
                min_price[i]=min_price[i-1];
            }
        }
        return min_price[count_day-1];
    }
}