华为OD机试真题 Java 实现【贪心的商人】【2023Q1 100分】-LMLPHP

一、题目描述

商人经营一家店铺,有number种商品,由于仓库限制每件商品的最大持有数量是item[index],每种商品的价格在每天是item_price[item_index][day],通过对商品的买进和卖出获取利润,请给出商人在days天内能获取到的最大利润。

注:同一件商品可以反复买进和卖出;

二、输入描述

3 //输入商品的数量 number
3 // 输入商人售货天数 days
4 5 6 //输入仓库限制每件商品的最大持有数量是itemlindex]
1 2 3 // 输入第一件商品每天的价格
4 3 2 // 输入第二件商品每天的价格
1 5 3 // 输入第三件商品每天的价格

三、输出描述

32//输出商人在这段时间内的最大利润

四、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String number = sc.nextLine();
    int num = Integer.parseInt(number);

    String str = sc.nextLine();
    String[] arrs = str.split(" ");
    int[] arr = new int[arrs.length];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = Integer.parseInt(arrs[i]);
    }

    int sum = 0;
    for (int i = 0; i < num; i++) {
        String priceArrStr = sc.nextLine();
        String[] priceArr = priceArrStr.split(" ");

        int max = 0;
        for (int j = 1; j < priceArr.length; j++) {
            int current = Integer.parseInt(priceArr[j]);
            int pre = Integer.parseInt(priceArr[j-1]);
            int profit = current - pre;
            max += Math.max(profit, 0);
        }
        sum += max * arr[i];
    }
    System.out.println(sum);
}

五、效果展示

1、输入

3
3
4 5 6
1 2 3
4 3 2
1 5 3

2、输出

32

华为OD机试真题 Java 实现【贪心的商人】【2023Q1 100分】-LMLPHP


🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

华为OD机试真题 Java 实现【贪心的商人】【2023Q1 100分】-LMLPHP

05-13 00:22