test

https://www.nowcoder.com/discuss/635066067198509056?sourceSSR=users

 public static int dynamic(int[] days, int[] costs) {
        int[] dp = new int[days[days.length - 1] + 1];
        int index = 0;
        for (int i = 1; i < dp.length &amp;&amp; index < days.length; i++) {
            if (days[index] == i) {
                int min = Integer.MAX_VALUE;
                int costT = Integer.MAX_VALUE;
                int costW = Integer.MAX_VALUE;
                int costM = Integer.MAX_VALUE;
                int costD = dp[i - 1] + costs[0];
                min = Math.min(min,costD);
                if (i - 3 > 0)
                    costT = dp[i - 3] + costs[1];
                min = Math.min(min,costT);
                if (i - 7 > 0)
                    costW = dp[i - 7] + costs[2];
                min = Math.min(min,costW);
                if (i - 30 > 0)
                    costM = dp[i - 30] + costs[3];
                min = Math.min(min,costM);
                dp[i] = min;
                index++;
            } else {
                dp[i] = dp[i - 1];
            }
        }
        return dp[days[days.length - 1]];
    }
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务