题解 | #最少数量货物装箱问题#

最少数量货物装箱问题

https://www.nowcoder.com/practice/37aa8a88a72e47f798a14d63bee61d8f

这是一个背包问题
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[][] dp=new int[n+1][4];
        int[] nums=new int[]{3,5,7};
        for(int i=0;i<=n;i++)
            dp[i][0]=Integer.MAX_VALUE;
        //dp[n][3]=;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=3;j++){
                if(i-nums[j-1]<0)
                    dp[i][j]=dp[i][j-1];
                else{
                    if(dp[i-nums[j-1]][j]==Integer.MAX_VALUE)
                        dp[i-nums[j-1]][j]=Integer.MAX_VALUE-1;
                    dp[i][j]=Math.min(dp[i][j-1],dp[i-nums[j-1]][j]+1);
                }
                    
            }
            
        }
        System.out.println(dp[n][3]==Integer.MAX_VALUE?-1:dp[n][3]);
    }
}


全部评论
想起了称象
点赞 回复 分享
发布于 2022-10-22 19:10 陕西

相关推荐

昨天 15:29
青岛大学 Java
点赞 评论 收藏
分享
会飞的猿:本人来了,手一抖转错了,我是学生,能还给我吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务