华为机试 - 最大股票收益

news2024/11/25 20:29:33

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

假设知道某段连续时间内股票价格,计算通过买入卖出可获得的最大收益。

输入一个大小为 n 的数 price(p1,p2,p3,p4…….pn),pi 是第i天的股票价格。

pi 的格式为股票价格(非负整型)加上货币单位 Y 或者 S,其中 Y 代表人民币,S 代表美元,这里规定 1 美元可以兑换 7 人民币。

Pi 样例 1:123Y 代表 123 元人民币

pi 样例 2:123S 代表 123 元美元,可兑换 861 人民币。

假设你可以在任何一天买入或者卖出股票,也可以选择放弃交易,请计其在交易周期 n 天内你能获得的最大收(以人民币计算)。

输入描述

输入一个包含交易周期内各天股票价格的字符串,以空格分隔。不考虑输入异常情况。

输出描述

输出一个整型数代表在交易周期 n 天内你能获得的最大收益,n 不能超过 10000

备注:股票价格只会用 Y 人民币或 S 美元进行输入,不考虑其他情况。

用例

输入2Y 3S 4S 6Y 8S
输出76
说明

题目解析

本题其实少了一句话,那就是,手上只能保留一只股票,不能保留多只股票。

如果可以保留多只股票,则用例2Y 3S 4S 6Y 8S,我前四个全要,即有四只股票,然后全部以8S价格卖出,那么最大利润为 8S * 4 - (2Y + 3S + 4S + 6Y) = 167,而不是76。

用例中的76输出,前提是手上只能保留一只股票。

即:

2Y买进,3S卖出,赚19

3S买进,4S卖出,赚7

6Y买进,8S卖出,赚50

共转76

这是一种贪心思维,即买涨不买跌,这样就稳赚不赔了。如上折线图,只买上升区段,不买下跌区段。

本题和LeetCode - 122 买卖股票的最佳时机 II_伏城之外的博客-CSDN博客

相同,题解请看链接博客说明。

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.on("line", (line) => {
  const arr = line.split(" ").map((price) => {
    const num = parseInt(price.substring(0, price.length - 1));
    return price.at(-1) === "Y" ? num : num * 7;
  });

  console.log(getResult(arr));
});

function getResult(arr) {
  let ans = 0;
  for (let i = 1; i < arr.length; i++) {
    ans += Math.max(0, arr[i] - arr[i - 1]);
  }
  return ans;
}

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

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

相关文章

基于风控特征相关度,挖掘贷中等场景中的存量客户价值|来看看相关实操

在数据建模流程中&#xff0c;都会涉及一个样本特征的相关性的分析&#xff0c;这个是建模流程中重要一环。通过量化特征字段之间的相关程度&#xff0c;可以将其作为一个重要信息维度&#xff0c;便于我们对模型训练的特征变量池进行有效筛选&#xff0c;不仅有简化模型且保证…

NLTK下载使用问题

一开始想要执行如下语句&#xff0c;结果运行不了 from textblob import TextBlob text Today is a beautiful day. Tomorrow looks like bad weather. blob TextBlob(text) print(blob) print(-*10) print(blob.sentences)原因是没有下载NLTK的语料库&#xff0c;调用如下语…

【创建VUE3新项目】从零开始如何创建一个干净的vue3项目【基于前端详细介绍】

【写在前面】基于安装完node和npm基础上来实现的&#xff0c;没安装的可以看我之前的文章&#xff0c;如何验证呢&#xff1f;npm -v / node -v 两个命令行解决&#xff01; 一、创建文件&#xff08;脚手架安装&#xff09; 此处值得注意的是不能包括大写字母&#xff0c;不…

图库 | 图计算的适用场景有哪些?

图计算适用的场景非常广泛。在其肇始的早期阶段&#xff0c;图计算仅限于学术界以及工业界资深的研究机构内部&#xff0c;随着计算机体系架构的发展&#xff0c;图计算也在更广泛的行业和场景中得到应用。按照时间维度我们大体可以把图计算的发展及适用范围分为如下几个阶段&a…

微服务框架 SpringCloud微服务架构 5 Nacos 5.1 认识和安装Nacos

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构5 Nacos5.1 认识和安装Nacos5.1.1 认识Nacos5.1.2 安装Nacos5 Nacos 5.1 …

ARM架构与编程 · 基于IMX6ULL

一、嵌入式系统硬件介绍 cpu RAM&#xff08;内存&#xff09; FALSH 集成&#xff08;flash存储设备&#xff09; MCU/单片机 AP/ MPU 进化之后可以外接内存和存储设备,跑复杂的操作系统&#xff0c;比如手机 cpu一上电就会执行程序&#xff0c;程序存放在片内的ROM中&…

Apollo 应用与源码分析:Monitor监控-软件监控-时间延迟监控

目录 代码 分析 RunOnce 函数分析 UpdateState函数分析 发送时间延迟报告函数分析 备注 代码 class LatencyMonitor : public RecurrentRunner {public:LatencyMonitor();void RunOnce(const double current_time) override;bool GetFrequency(const std::string& ch…

原型设计模式

一、原型模式 1、定义 原型模式&#xff08;Prototype Pattern&#xff09;指原型实例指定创建对象的种类&#xff0c;并且通过复制这些原型创建新的对象&#xff0c;属于创建型设计模式。 原型模式的核心在于复制原型对象。 2、结构 &#xff08;1&#xff09;模式的结构 …

doris 动态分区

添加分区 ALTER TABLE v2x_olap_database.government_car ADD PARTITION p20221203 VALUES LESS THAN ("2022-12-04");动态分区表不能添加分区&#xff0c;需要转为手动分区表 查看分区 show paritions from <表名>删除分区 alter table <表名> dro…

[附源码]Python计算机毕业设计SSM隆庆祥企业服装销售管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

短信的信令过程

目录 1 短消息的信息流程&#xff1a; 1.1消息一次成功发送时的情况MO上行-MT下行 方式&#xff1a;1&#xff0e; MO&#xff08;主叫移动用户发给sp短消息中心&#xff09;编辑好短消息&#xff0c;键入发送号码&#xff08;被叫移动用户号码&#xff09;&#xff0c;按发送…

Java基于springboot+vue的摄影作品展示交流系统 计算机毕业设计

随着时代的发展&#xff0c;人们的精神世界也在不断的丰富&#xff0c;尤其是在当下电子设备发展迅速的背景下&#xff0c;人们通过数码相机或者手机随后就可以拍下每一个美丽的瞬间&#xff0c;但是人们更希望将这些摄影作品传到网上和更多的人进行分享&#xff0c;同时也希望…

决策树算法、随机森林算法

一、决策树 1、什么是决策树&#xff1f;如何进行高效的决策&#xff1f; 最早的决策树就是利用程序设计中的if-else结构分割数据的一种分类学习法。决策树的思想就是&#xff1a;如何高效的进行决策。而我们决策是有顺序的&#xff0c;即&#xff1a;我们在看不同的特征的时…

SSE AVX 发展简单介绍

SIMD全称是"Single Instruction, Multiple Data". SSE1是Pentium III引入的&#xff0c;它操作于16 bytes寄存器。在C和C中&#xff0c;这些寄存器以__m128的形式作为数据类型(128 bits16 bytes)。每个寄存器包含4个单精度浮点数float&#xff0c;指令集一共有8个这…

virtualbox下ubuntu虚拟机配置网络

一、目标&#xff1a; 1.在ubuntu虚拟机内可以联通外网 2.可以通过本机ssh连接上ubuntu虚拟机 二、Virtualbox配置 1.勾选 “系统->网络” 2.配置双网卡 网卡1配置为Nat&#xff0c;网卡2配置为Host-Only 三、ubuntu虚拟机内部设置 vi /etc/netplan/00-installer-confi…

OS_内存管理@非连续方式@段式和段页式

文章目录OS_内存管理非连续方式段式和段页式内存管理方式的发展基本分段存储逻辑结构图逻辑地址结构划分段表地址变换机构段表寄存器内容结构段和段表项的记号地址变换机构变换过程段的共享与保护段页式存储逻辑地址结构实现思路:段表和页表的变体&#x1f388;逻辑结构图sp-段…

HLS + ffmpeg 实现动态码流视频服务

一、简介 如下图&#xff0c;包含三部分&#xff0c;右边一列为边缘节点&#xff1b;中间一列代表数据中心&#xff1b;左边一列是项目为客户提供的一系列web管理工具&#xff1a; 具体来说在我们项目中有一堆边缘节点&#xff0c;每个节点上部署一台强大的GPU服务器及N个网络…

猴子也能学会的jQuery第十二期——jQuery遍历(下)

&#x1f4da;系列文章—目录&#x1f525; 猴子也能学会的jQuery第一期——什么是jQuery 猴子也能学会的jQuery第二期——引用jQuery 猴子也能学会的jQuery第三期——使用jQuery 猴子也能学会的jQuery第四期——jQuery选择器大全 猴子也能学会的jQuery第五期——jQuery样式操作…

0201导数的概念-导数与微分-高等数学

文章目录1 导数的定义2 常见函数的导数(导函数)3 单侧导数4 导数的几何意义5 可导和连续的关系6 后记1 导数的定义 设函数yf(x)yf(x)yf(x)在点x0x_0x0​的某个邻域内有定义&#xff0c;当自变量x在x0取得增量△xx在x_0取得增量\triangle xx在x0​取得增量△x(点x△xx\triangle …

品优购项目案例制作需要注意的内容笔记

个人在做的时候遇到的&#xff0c;自己觉得需要注意的内容 模块化 1.有些样式和结构在很多页面会出现&#xff0c;比如页面的头部和底部&#xff0c;大部分页面都有。此时可以把这些结构和样式单独作为一个模块&#xff0c;然后重复使用 2.这里最典型的应用就是common.css公…