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

news2024/11/20 10:38:11

在这里插入图片描述

一、题目描述

商人经营一家店铺,有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//输出商人在这段时间内的最大利润

四、解题思路

  1. 输入商品的数量;
  2. 输入商品售货天数;
  3. 仓库限制每件商品的最大持有数量;
  4. 定义一个二维数组new int[number][day],存储第number件商品第day天的价格;
  5. 利润 = (售价 - 进价) * 数量;
  6. 输出最大利润;

五、JavaScript算法源码

function calculateMaxProfit(number, days, itemArr, priceArrs) {
    const item = itemArr.map((num) => parseInt(num));

    let sum = 0;
    for (let i = 0; i < number; i++) {
        const priceArr = priceArrs[i].split(" ");

        let max = 0;
        for (let j = 1; j < days; j++) {
            const current = parseInt(priceArr[j]);
            const pre = parseInt(priceArr[j - 1]);
            const profit = current - pre;
            max += Math.max(profit, 0);
        }
        sum += max * item[i];
    }

    return sum;
}

感谢刷题群小伙伴提供的进阶算法

const calculateMaxProfit = (number, days, itemArr, priceArrs) => {
  const item = itemArr.map(Number);

  let sum = 0;
  for (let i = 0; i < number; i++) {
    const priceArr = priceArrs[i].split(" ").map(Number);

    let max = 0;
    for (let j = 1; j < days; j++) {
      const [current, pre] = [priceArr[j], priceArr[j - 1]];
      const profit = current - pre;
      max += Math.max(profit, 0);
    }
    sum += max * item[i];
  }

  return sum;
};

六、效果展示

1、输入

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

2、输出

32


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/640983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL高级之order by优化

简介 MySQL支持两种方式的排序&#xff0c;FileSort和Index&#xff0c;其中Index的效率较高他是指MySQL扫描索引本身完成排序。FileSort方式效率较低 使用Index 一般情况下ORDER BY满足两种情况会使用索引排序 ORDER BY语句使用索引最左前列使用where子句与order by 子句条…

复习之linux虚拟化的介绍

一、虚拟化客户端及工具的安装 1.在虚拟机westos中列出&#xff1a; ps:虚拟机中安装虚拟机无意义&#xff0c;这里指是做实验看清楚虚拟机的创建&#xff01; # dnf group list --hidden irtualization Client &#xff1a;虚拟化客户端 Virtualization Tools &…

稳定性治理二,稳定性分析

目录 重新认识系统稳定性&#xff08;SLA与系分&#xff09;稳定性分析&#xff08;单点&#xff0c;容量和性能&#xff0c;依赖&#xff0c;数据保护&#xff0c;安全&#xff0c;资损&#xff0c;弹性能力&#xff0c;业务连续性&#xff0c;变更控制&#xff09;压测方案&a…

面向对象3构造器

类的成员之三&#xff1a;构造器(Constructor) 我们 new 完对象时&#xff0c;所有成员变量都是默认值&#xff0c;如果我们需要赋别的值&#xff0c;需要 挨个为它们再赋值&#xff0c;太麻烦了。我们能不能在 new 对象时&#xff0c;直接为当前对象的 某个或所有成员变量直接…

美团买菜基于 Flink 的实时数仓建设

摘要&#xff1a;本文整理自美团买菜实时数仓技术负责人严书&#xff0c;在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 背景介绍 2. 技术愿景和架构设计 3. 典型场景、挑战与应对 4. 未来规划 Tips&#xff1a;点击「阅读原文」免…

ReentrantLock实现原理-条件锁

在前两篇文章中&#xff0c;我们了解了ReentrantLock内部公平锁和非公平锁的实现原理&#xff0c;可以知道其底层基于AQS&#xff0c;使用双向链表实现&#xff0c;同时在线程间通信方式(2)中我们了解到ReentrantLock也是支持条件锁的&#xff0c;接下来我们来看下&#xff0c;…

ISO21434 网络安全支持终止与退役(十一)

目录 一、概述 二、目标 三、网络安全支持终止 3.1 输入 3.2 要求和建议 3.3 输出 四、退役 4.1 输入 4.1.1 先决条件 4.1.2 进一步支持信息 4.2 要求和建议 4.3 输出 一、概述 退役不同于结束网络安全支持。一个组织可以结束对一个项目或组件的网络安全支持&#…

【Linux】常用命令总结

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 1.登录操作 2.操作系统 a.os是什么&#xff1f; b.好的操作系统的衡量指标&#xff1f;为什么要有操作系统&#xff1f; 3.Linux下的基本指令 a.ls指令 b.pwd指令 c.cd指令 d…

SB领导的特征

越是SB领导&#xff0c;往往越有这9大特征&#xff0c;难怪员工不服气。 孔子曾说过&#xff1a;“视其所以&#xff0c;观其所由、察其所安、人焉善哉&#xff1f;” 领导也是如此&#xff0c;想要判断领导是不是SB&#xff0c;关键就看他的所作所为。 越是“SB”的领导&#…

在CRM系统中如何获取联系人的信息?

CRM客户管理系统可以有效应对企业对联系人管理的需求&#xff0c;帮助销售人员随时随地查阅、记录、修改联系人&#xff0c;为业务开展做好铺垫。CRM中联系人是什么&#xff1f;如何获取联系人信息&#xff1f; 1.CRM中联系人是什么&#xff1f; CRM系统联系人指的是沟通对象…

薅羊毛!阿里云免费GPU云主机畅玩AI绘画,免费领取阿里云v100显卡搭建AI绘画利器Stable Diffusion

❝ AI绘画利器Stable Diffusion,因为对电脑显卡&#xff0c;磁盘&#xff0c;内存等都有一些限制&#xff0c;导致大部分人望而止步&#xff0c;所以小编今天教大家免费领取阿里云的免费显卡服务器&#xff0c;免费试用3个月&#xff0c;以方便各位快速学习与使用。 ❞ 领取免费…

MapReduce编程

Hadoop的MapReduce计算框架 概述 MapReduce计算框架是一种计算框架&#xff0c;用于计算处理大规模的数据集&#xff0c;他将数据分成小块&#xff0c;然后在集群中的多个节点上并行处理这些块MapReduce框架是由两个组件组成&#xff1a;Map和Reduce Map任务将输入数据分解成…

团队管理之性能实施团队日志12

这几天算是多事之秋。本来就有几个严重的问题天天在折腾。 还是出现了各种差错。 其实对于做项目来说&#xff0c;就是这样&#xff0c;总会有紧要的事情突然冒出来。 我倒是习惯了这种状态。 只是时间不等人。 这两天在写各系统的最终报告。结果写到某个系统的时候发现&#…

零基础学Python,最受推荐的10本Python书籍

目录 适合初学者的最佳Python书籍1、《Python编程&#xff1a;从入门到实践》2、《Head-First Python (2nd edition)》3、《“笨方法”学Python》4、《Python程序设计&#xff08;第3版&#xff09;》 最适合初学者的免费Python书籍5、《像计算机科学家一样思考Python (第2版)》…

学习【菜鸟教程】【C++ 继承】(未完)

链接 1. 教程原文 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类&#xff0c;这使得创建和维护一个应用程序变得更容易。这样做&#xff0c;也达到了重用代码功能和提高执行效率的效果。 当创建一个类时&#xff0c;您不需要重新编写新的…

0基础学习VR全景平台篇第41篇:编辑器底部菜单-素材管理

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 本期为大家带来蛙色VR平台&#xff0c;底部菜单—素材管理功能操作。 功能位置示意 一、本功能将用在哪里&#xff1f; 素材管理&#xff0c;主要是对场景列表相关的基础操作做一个详细的讲解&#xf…

自研API 网关 - 媲美美团这套Shepherd网关架构!

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 我说&#xff1a;“很多互联网大厂&#xff0c;很少基于 SpringMVC 模块对外提供 WEB 服务的 HTTP 接口&#xff01;” 一下炸窝…

【瑞萨RA MCU创意氛围赛】基于FSP库开发 --- Qt遥控小车

文章目录 引言一、产品功能介绍二、硬件清单三、软件设计1. RASC2. Keil2. Qt 四、视频展示 引言 很高兴能够加入“野火”这个大家庭中&#xff0c;且能有机会参加第一期的【瑞萨RA MCU创意氛围赛】&#xff0c;在此之前&#xff0c;我竟都没能了解瑞萨这个产品&#xff0c;是…

如何计算一个实例占用多少内存?

我们都知道CPU和内存是程序最为重要的两类指标&#xff0c;那么有多少人真正想过这个问题&#xff1a;一个类型&#xff08;值类型或者引用类型&#xff09;的实例在内存中究竟占多少字节&#xff1f;我们很多人都回答不上来。其实C#提供了一些用于计算大小的操作符和API&#…

【026】C++的内联函数、函数重载、函数的默认参数与占位参数

C的内联函数、函数重载、函数的默认参数与占位参数 引言一、内联函数1.1、声明内联函数1.2、宏函数和内联函数的区别1.3、内联函数的注意事项 二、函数重载2.1、函数重载的概述2.2、函数重载的条件2.3、函数重载的底层实现原理 三、函数的默认参数四、占位参数五、extern "…