华为OD机试-云短信平台优惠活动-完全背包(JAVA 2024E卷)


java 复制代码
public class My {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int maxNum = Integer.parseInt(str);
        String line = sc.nextLine();
        String[] strings = line.split(" ");
        int n = strings.length;

        //要考虑到物品0的情况,物品0的重量和价值都是0
        int[] values = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            values[i] = Integer.parseInt(strings[i - 1]);
        }

        int[] wight = new int[n + 1];
        for (int i = 0; i < wight.length; i++) {
            wight[i] = i;
        }

        int[][] dp = new int[n + 1][maxNum + 1];
        for (int i = 1; i <= n; i++) {//物品数量
            for (int j = 1; j <= maxNum; j++) {//重量
                if (j < wight[i]) {//当前物品重量大于当前背包重量,不放入物品
                    dp[i][j] = dp[i - 1][j];
                }else {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - wight[i]] + values[i]);
                }
            }
        }
        System.out.println(dp[n][maxNum]);

    }

}
相关推荐
美团快速送达几秒前
每日一题----第四题
java·算法·leetcode
虎鲸不是鱼1 分钟前
记一次借助Eclipse MAT排查OOM
java·jvm·ide·eclipse·gc
phltxy12 分钟前
常见排序的学习
java·学习·排序算法
Catfood_Eason29 分钟前
通用代码自用
java·服务器·前端
wjs202432 分钟前
C++ 信号处理
开发语言
zwxu_40 分钟前
基于vscode连接服务器实现远程开发
java·开发语言·vscode·golang
q__y__L41 分钟前
C# WaitHandle类的几个有用的函数
java·开发语言·c#
七七软件开发1 小时前
二手交易 app 系统架构分析
java·python·小程序·系统架构·php
都叫我大帅哥1 小时前
RabbitMQ生产者发布确认:从入门到精通,幽默解析与实战指南
java·rabbitmq
二级小助手2 小时前
计算机二级java选择题真题【内附解析】
java·计算机二级·全国计算机二级·二级java·java二级·java二级选择题·全国计算机java二级