当前位置: 首页 > news >正文

股票买卖的思路与代码

题目

1302:股票买卖


时间限制: 1000 ms         内存限制: 65536 KB
提交数:8660    通过数: 4290

【题目描述】

最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。

假设阿福已经准确预测出了某只股票在未来N天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。

同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。

现在,阿福想知道他最多可以获得多少利润。

【输入】

输入的第一行是一个整数T(T≤50),表示一共有T组数据。

接下来的每组数据,第一行是一个整数N(1≤N≤100,000),表示一共有N天。第二行是 N 个被空格分开的整数,表示每天该股票的价格。该股票每天的价格的绝对值均不会超过1,000,000。

【输出】

对于每组数据,输出一行。该行包含一个整数,表示阿福能够获得的最大的利润。

【输入样例】

3
7
5 14 -2 4 9 3 17
6
6 8 7 4 1 -2
4
18 9 5 2

【输出样例】

28
2
0

分析

题目说阿福一共只做两次买卖,而且必须第一次做完买卖才能开始第二次买卖。所以我们不难发现,本题简化成把一段线段从一个点开始分为两段。

也就是这样,最后把上下两行加起来后每一列的最大值就是答案。

代码

#include <bits/stdc++.h>
using namespace std;const int MAXSIZE = 100005;
int dp[MAXSIZE][2], a[MAXSIZE];int main() {int T;cin >> T;while (T--) {memset(dp, 0, sizeof (dp));int n;cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];int mn = a[1], mx = a[n];for (int i = 2; i <= n; i++) { // 第一行mn = min(mn, a[i]);dp[i][0] = max(dp[i - 1][0], a[i] - mn);}for (int i = n - 1; i >= 1; i--) { // 第二行mx = max(mx, a[i]);dp[i][1] = max(dp[i + 1][1], mx - a[i]);}mx = 0x80000000;for (int i = 1; i <= n; i++)mx = max(mx, dp[i][0] + dp[i][1]);cout << mx << endl;}return 0;
}

相关文章:

股票买卖的思路与代码

题目 1302&#xff1a;股票买卖 时间限制: 1000 ms 内存限制: 65536 KB 提交数:8660 通过数: 4290 【题目描述】 最近越来越多的人都投身股市&#xff0c;阿福也有点心动了。谨记着“股市有风险&#xff0c;入市需谨慎”&#xff0c;阿福决定先来研究一下简化版的股…...

Eureka Server与Eureka Client详解:服务注册与发现的交互机制

Eureka Server与Eureka Client详解&#xff1a;服务注册与发现的交互机制 Eureka 是 Netflix 开源的一个服务发现框架&#xff0c;它是 Spring Cloud 微服务架构中的核心组件之一。Eureka 主要由两个关键组件构成&#xff1a;Eureka Server 和 Eureka Client。它们之间通过一定…...

php-fpm 如何查看哪个正在执行死循环 并终止

php-fpm 如何查看哪个正在执行死循环 并终止 1. 检查 PHP-FPM 进程的 CPU 使用情况 首先&#xff0c;使用 top 或 htop 命令检查哪个 PHP-FPM 进程占用了大量的 CPU 资源。这个进程很可能是在死循环中。 top -c在 top 命令输出中&#xff0c;按 P 键可以按 CPU 使用率排序。…...

电脑硬盘坏了怎么恢复数据?

在数字化时代&#xff0c;电脑硬盘作为存储核心&#xff0c;承载着我们的工作文档、学习资料、家庭照片以及无数珍贵的回忆。然而&#xff0c;硬盘作为机械设备&#xff0c;也有其寿命和脆弱性&#xff0c;一旦出现故障&#xff0c;数据恢复便成为了一个紧迫而棘手的问题。本文…...

cdga|某大型企业数据治理的成功转型:构建数据驱动的竞争力新引擎

在当今这个数据爆炸的时代&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;其有效管理和利用直接关系到企业的核心竞争力。某大型企业&#xff0c;作为行业内的领军企业&#xff0c;面对海量数据带来的机遇与挑战&#xff0c;果断启动了一项全面而深入的数据治理项目&a…...

C#使用 ModeBusTCP读取汇川Easy521PLC

Modbus TCP是一种基于以太网TCP/IP的Modbus协议变种&#xff0c;它允许Modbus协议在以太网网络上运行&#xff0c;使得设备之间可以通过IP网络交换数据。Modbus由MODICON公司于1979年开发&#xff0c;是一种工业现场总线协议标准&#xff0c;广泛应用于工业自动化领域。 #regio…...

PostgreSQL的postgres主进程

PostgreSQL的postgres主进程 在PostgreSQL数据库系统中&#xff0c;主要的后台进程各司其职&#xff0c;保证数据库的高效运行。其中&#xff0c;主进程postgres&#xff08;也称为Postmaster&#xff09;是整个数据库的核心&#xff0c;它负责管理和协调所有其他后台进程&…...

Java实现K个排序链表的高效合并:逐一合并、分治法与优先队列详解

Java实现K个排序链表的高效合并&#xff1a;逐一合并、分治法与优先队列详解 在算法和数据结构的学习中&#xff0c;链表是一个非常基础但又极具挑战的数据结构。尤其是当面对合并多个排序链表的问题时&#xff0c;如何在保证效率的前提下实现代码的简洁与高效&#xff0c;往往…...

Xinstall揭秘:高效App推广背后的黑科技

在移动互联网时代&#xff0c;App的运营推广成为了开发者们最为关注的话题之一。然而&#xff0c;随着市场竞争的加剧&#xff0c;推广难度也越来越大。这时候&#xff0c;一款名为Xinstall的品牌走进了我们的视线&#xff0c;它以其独特的技术和解决方案&#xff0c;为App推广…...

星巴克VS瑞幸,新王、旧王之争给新CEO带来哪些启示

“变化是生命的元素&#xff0c;求变是生命的力量”&#xff0c;马克吐温曾这样解释生命。而商场上何尝不是如此&#xff0c;正因为世异则事异&#xff0c;求变也是企业的常态。 近日&#xff0c;星巴克官宣布莱恩尼科尔(Brian Niccol)将于9月9日接替拉什曼纳拉辛汉(Laxman Na…...

C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题

题目&#xff1a; 题解&#xff1a; int cmp(int** a, int** b) {return (*a)[0] (*b)[0] ? (*b)[1] - (*a)[1] : (*a)[0] - (*b)[0]; }int maxEnvelopes(int** envelopes, int envelopesSize, int* envelopesColSize) {if (envelopesSize 0) {return 0;}qsort(envelopes, …...

大型俄罗斯国际展览会介绍

今天分享一些在俄罗斯比较知名的国际展览会&#xff0c;以下展会大多为一年一届&#xff0c;具体展出时间大家可去网上查询了解&#xff0c;充分利用合适的展会&#xff0c;无疑是企业拓展市场、塑造品牌、对接资源、紧跟行业趋势的重要途径。 1、俄罗斯国际食品展览会 展览地…...

CST软件仿真案例:圆极化平板天线仿真02

本期继续完成一款圆极化Patch天线的仿真实例。读者可以完整的了解到怎么用CST微波工作室&#xff0c;完成对一款天线建模、设置到仿真分析的完整过程。 本期中&#xff0c;我们要设计的圆极化天线尺寸如下图所示&#xff1a; 本期内容是接着上期部分开始。首先先完成仿真实例0…...

【前端】vue监视属性和计算属性对比

首先分开讲解各个属性的作用。 1.计算属性 作用&#xff1a;用来计算出来一个值&#xff0c;这个值调用的时候不需要加括号&#xff0c;会根据依赖进行缓存&#xff0c;依赖不变&#xff0c;computed的值不会重新计算。 const vm new Vue({el:#root,data:{lastName:张,firstNa…...

探索提示工程 Prompt Engineering的奥妙

一、探索提示工程 Prompt Engineering 1. 介绍通用人工智能和专用人工智能 人工智能&#xff08;AI&#xff09;可以分为通用人工智能&#xff08;AGI&#xff09;和专用人工智能&#xff08;Narrow AI&#xff09;。AGI是一种能够理解、学习和执行任何人类可以完成的任务的智…...

算法阶段总结1

阶段总结 通过今天晚上的这场div2我深刻的意识到&#xff0c;光是会找窍门是远远不够的&#xff0c;你得会基础的建图&#xff0c;dp&#xff0c;高级数据结构&#xff0c;你这样才可以不断的提升自己&#xff0c;不可以一直在一个阶段停留下去&#xff0c;构造题可以刷下去&a…...

前端宝典之七:React性能优化实战精华篇

本文主要讲解实战项目中React性能优化的方法&#xff0c;主要分为三个大的方面&#xff1a;减少不必要的组件更新、组件优化以及tree-shaking&#xff0c;共11个方法 一、减少不必要组件更新 以下是一些可以避免在 React 提交阶段进行不必要重新渲染的方法&#xff1a; 1、使…...

【Dash】feffery_antd_components 简单入门示例

一、简单了解 feffery_antd_components 简称 fac &#xff0c;是一个基于 Ant Design 的 Dash 第三方组件&#xff0c;由Feffery 老师开源维护的 Python 网页开发组件库&#xff0c;它具有丰富的页面常用交互组件功能&#xff0c;使开发者可以使用纯Python的方式快速构建现代…...

JAVA学习-练习试用Java实现“路径交叉”

问题&#xff1a; 给定一个整数数组 distance 。从 X-Y 平面上的点 (0,0) 开始&#xff0c;先向北移动 distance[0] 米&#xff0c;然后向西移动 distance[1] 米&#xff0c;向南移动 distance[2] 米&#xff0c;向东移动 distance[3] 米&#xff0c;持续移动。也就是说&#…...

element组件封装

1.上传组件 <!--文件上传组件--> <template><div class"upload-file"><el-uploadref"fileUpload"v-if"props.type default":action"baseURL other.adaptationUrl(props.uploadFileUrl)":before-upload"h…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...