华为OD2023(A卷)基础题26【最大利润、贪心的商人】

2023-10-31

题目:最大利润

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

输入

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

输出

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

示例一

输入

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

输出

32

import java.util.*;

public class OdAb26 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 获取输入信息
        int number = sc.nextInt();  // 几种商品
        int days = sc.nextInt();  // 几天
        int[] item = new int[number];  // 每种商品的最大囤货数量
        int[][] prices = new int[number][days];  // 每种商品的在days天内的价格变动情况

        for (int i = 0; i < number; i++) {
            item[i] = sc.nextInt();  // 获取每种商品的最大囤货数量
        }

        for (int i = 0; i < number; i++) {
            for (int j = 0; j < days; j++) {
                prices[i][j] = sc.nextInt();  // 获取每种商品在每天的价格变化情况
            }
        }

        // 计算最大利润
        int ans = getResult(number, days, item, prices);

        // 输出结果
        System.out.println(ans);
    }

    public static int getResult(int number, int days, int[] item, int[][] prices) {
        /**
         * @param number: 几种商品
         * @param days: 几天
         * @param item: 每种商品的最大囤货数量
         * @param prices: 每种商品的在days天内的价格变动情况
         * @return: 最大利润
         */
        int ans = 0;
        for (int i = 0; i < number; i++) { // 遍历每种商品
            int[] price = prices[i]; // 获取当前商品的价格变化情况
            for (int j = 0; j < days - 1; j++) { // 遍历商品的每天价格
                if (price[j] < price[j + 1]) { // 如果今天价格小于明天价格,即可盈利
                    ans += (price[j + 1] - price[j]) * item[i]; // 加入盈利金额
                }
            }
        }
        return ans;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD2023(A卷)基础题26【最大利润、贪心的商人】 的相关文章

随机推荐

  • 解决Vue前端报错——Error: Cannot find module ‘node-sass‘

    解决Vue前端报错 Error Cannot find module node sass 今天在使用VsCode 导入一个新Vue項目文件夹的时候出现了以下的问题 npm run dev提示 Cannot find module node
  • Winform自定义表单(转)

    出处 http www newlifex com showtopic 167 aspx 好吧 附件真的损坏了 原始代码我也没有了 再提取我也没精力了 不好意思 哪位之前下过可以重发一遍吗 不过即使没有也可以参考下面几个示例很快就可以做出来了
  • docker容器二之Dockerfile详解+镜像的优化

    文章目录 Dockerfile详解 Dockerfile常用指令 Dockerfile示例 实验截图 解决报错 Shell和exec格式的区别 镜像的优化 Dockerfile详解 Dockerfile常用指令 首先先明白 什么是Docke
  • matlab/simulink scope 示波器添加菜单栏的方法

    在用matlab simulink scope 示波器的时候 弹出的图像框没有菜单栏 保存复制等操作极为不便 以下操作可以让示波器的图形窗口显示出菜单栏 在matlab的command window里执行下面两句代码 set 0 ShowH
  • 【华为OD机试】工号不够用了怎么办【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 3020年 空间通信集团的员工人数突破20亿人 即将遇到现有工号不够用的窘境 现在 请你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母 a z 和数字
  • spring的ApplicationContext 得到方式

    ClassPathXmlApplicationContext会自己在CLASSes里面找 不过我只是把配置文件放在src文件下成功找到过 String paths applicationContextDataSource xml appli
  • MarkDown中写流程图的方法

    序 Mermaid FlowChat 中译为美人鱼 就好比一条美人鱼在流动构成了流程图 是一种在MarkDown中以特定格式的文字生成流程图或是图标的方法 一种简单的降价式脚本语言 用于通过javascript从文本生成图表 官方文档点这里
  • 【华为OD机试真题】94、猜密码

    文章目录 一 题目 题目描述 输入输出 样例1 二 代码与思路参考 C语言思路 C代码 C 语言思路 C 代码 Java语言思路 Java代码 Python语言思路 Python代码
  • 13-集合框架

    引言 集合框架 理解为集合体系指的是由很多类共同构成 这些类之间存在关系 继承或实现 是成体系的类和接口 一 认识集合 在java程序中 集合是存放数据的容器 它数组一样 但是但是 是存在差异的 从使用上说 集合更为方便 因为集合容量会随着
  • LTP--Linux Test Project

    简介 LTP套件是由 Linux Test Project 所开发的一套系统测试套件 它基于系统资源的利用率统计开发了一个测试的组合 为系统提供足够的压力 通过压力测试来判断系统的稳定性和可靠性 压力测试是一种破坏性的测试 即系统在非正常的
  • element upload限制图片上传格式

    限制图片的格式 html部分 点击选择图片的正常操作是只会出现图片格式 如果选择所有文件 我们就要重新进行验证 在选择照片的时候我们就要进行判断 所以是在on change事件中判断是否为照片格式 先封装一个isImage方法 isImag
  • 【笔试面试真题】Java实现数列还原

    题目描述 牛牛的作业薄上有一个长度为 n 的排列 A 这个排列包含了从1到n的n个数 但是因为一些原因 其中有一些位置 不超过 10 个 看不清了 但是牛牛记得这个数列顺序对的数量是 k 顺序对是指满足 i lt j 且 A i lt A
  • 【JavaWeb】Servlet,Request,Responce

    JavaWeb 核心技术 目录 Tomcat 1 安装配置目录使用部署创建 2 idea集成Tomcat Servlet Servlet快速入门 Servlet生命周期 Servlet体系结构 Servlet urlPattern配置 XM
  • 判断当前日期是否在[startDate, endDate]区间

    原文地址 http www cnblogs com linjiqin p 5569601 html 判断当前日期是否在 startDate endDate 区间 param startDate 开始日期 param endDate 结束日期
  • C语言实现输出九九乘法表

    代码如下 include
  • Jmeter之设置用户token为全局变量(超详细,保证你会)

    1 打开jmeter之后新增一个线程组 路径 Test Plan Add Theads user Thread Group 2 添加了线程组之后 在线程组下面添加一个sampler 取样器 就是HTTP request 3 在http请求里
  • 程序员应该掌握的10个搜索技巧

    程序员应该掌握的10个搜索技巧 txt 程序员应该掌握的10个搜索技巧 txt Google搜索 1 准确搜索 2 排除关键词 3 用 Either OR 或 逻辑进行搜索 4 同义词搜索 5 在站内进行搜索 6 善用星号 7 在两个数值之
  • java log 封装_工具类之LogUtils

    安卓开发离不开记录log日志 封装了一份简单的日志工具类 具有设置日志总开关 是否写入文件 日志过滤器和自定义标签 锁定打印log的类 函数名及行号 初始化有可以使用init函数也可以使用建造者模式 具体使用参看单元测试 站点 init 初
  • 在ubuntu下安装VScode,配置PCL文件库问题

    安装过程直接忽略 可以在官网直接下载安装 Download Visual Studio Code Mac Linux Windows 安装完成后在桌面新建一个文件夹和一个 cpp文件 右键文件夹 选择使用VScode打开 安装中文包 安装C
  • 华为OD2023(A卷)基础题26【最大利润、贪心的商人】

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