【题解】股票买卖

题目描述

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

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

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

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

 

输入格式

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

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

 

输出格式

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

 

输入样例

3

7

5 14 -2 4 9 3 1

7

6 6 8 7 4 1 -2

4

18 9 5 2

 

输出样例

28

2

0

 

题解

  我们可以用$dp1[i]$表示第$1$天到第$i$天买卖第一次股票的最大值,$dp2[i]$表示第$i$天到第$n$天买卖第二次股票的最大值。

  易得$ans = \underset{1 \leqslant i \leqslant n}{max} \left \{ dp1[i] + dp2[i] \right \}$。

#include <iostream>
#include <cstdio>#define MAX_N (100000 + 5)using namespace std;int T;
int n;
int a[MAX_N];
int dp1[MAX_N], dp2[MAX_N];
int ans;int main()
{scanf("%d", &T);int mina, maxa;while(T--){scanf("%d", &n);for(register int i = 1; i <= n; ++i){scanf("%d", a + i);}dp1[0] = dp2[n + 1] = ans = -0x7f7f7f7f;mina = 0x7f7f7f7f;maxa = -0x7f7f7f7f;for(register int i = 1; i <= n; ++i){mina = min(mina, a[i]);dp1[i] = max(dp1[i - 1], a[i] - mina);}for(register int i = n; i; --i){maxa = max(maxa, a[i]);dp2[i] = max(dp2[i + 1], maxa - a[i]);}for(register int i = 1; i <= n; ++i){ans = max(ans, dp1[i] + dp2[i]);}cout << ans << "\n";}return 0;    
}
参考程序

 

转载于:https://www.cnblogs.com/kcn999/p/10959829.html

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一道关于股票买卖的算法编程题

前段时间在segmentfault回答了一个关于算法的问题,感觉很有趣,记录下来. 题目是这样的: 给定数组n&#xff0c;包含n天股票的价格price. 一个人一共最多可以买2手股票&#xff0c;但在第一手股票卖出前不能买入第二手股票。如果不买&#xff0c;收益为0.假设每手只买1股。计算…

股票买卖题型 详解

股票买卖题型 买卖股票最佳时机 ​ 第一题贪心算法应该快很多 就 不讲 。 此类问题 思路大致一致 ​ 第二题也可用贪心做 ans max(ans, ansprices[i]-prices[i-1]); 分析&#xff1a; 共有两个属性值 &#xff0c; 未持有 和持有股票 定义 f[ i ] [ 2 ] f[ i ] [ 0 ]表示 第…

【算法题】股票买卖问题解法详解

本解法是股票问题的通用解法&#xff0c;在leetcode上对应以下题&#xff1a; 买卖股票的最佳时机 买卖股票的最佳时机 II 买卖股票的最佳时机 III 买卖股票的最佳时机 IV 买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期 下面来说通用解法&#xff1a; 这类问题…

贪心算法(股票买卖例题)

贪心算法定义&#xff1a; 贪心算法&#xff08;又称贪婪算法&#xff09;是指&#xff0c;在对 问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的是在某种意义上的局部 最优解。 贪心算法不是对所有…

买卖股票的最佳时机 II -数学推导证明贪心思路 -leetcode122

问题说明来源leetcode 一、问题描述: 122. 买卖股票的最佳时机 II 难度中等1941 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可…

产品开发利器:Axure及实例

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 简介Axure优点Axure和蓝湖Axure实例 简介 Axure是一个最便捷、最热门的界面原型设计工具&#xff0c;它不需要任何编程或写代码基础&#xff0c;就可以设…

ChatGPT伪原创:智能AI助手助力文章创作

智能AI助手助力文章创作 随着人工智能技术的不断发展&#xff0c;智能AI助手正逐渐成为文章创作的得力工具。无论是在写作过程中提供灵感和创意&#xff0c;还是在文章编辑和校对中提供帮助&#xff0c;智能AI助手都能为作者节省时间和精力&#xff0c;提高文章质量。本文将从…

2022年度强化学习领域19个重要进展汇总

本文汇总梳理了2022年度&#xff0c;强化学习领域的发展重大事件、以及落地应用等方向中突出代表&#xff0c;整理难免带有个人观点&#xff0c;欢迎大家一起讨论。本文整理自“深度强化学习实验室”公众号&#xff0c;阅读原文请点击这里。 【1】MIT强化学习新算法EIPO&#…

分割一切?手把手教你部署SAM+LabelStudio实现自动标注

一&#xff0c;前言 最近Open-mmlab开源了Playground项目&#xff0c;将最近引起CV界轰动的SAM(Segment Anything Model)模型和Open-mmlab多个视觉框架相结合&#xff0c;可实现多种视觉任务的自动标注&#xff0c;本文将采用Open-mmlab的Playground开源项目&#xff0c;使用S…

老婆饼真有老婆,驴肉火烧有头驴--文言一心

困扰大家很久的问题&#xff1a;老婆饼里为啥没老婆&#xff0c;鱼香肉丝里为啥没有鱼。 最近&#xff0c;百度推出自己的AI大模型“文心一言”&#xff0c;李彦宏在发布会上表示&#xff0c;目前百度是全球大厂中第一个做出对标ChatGPT产品的企业。 有网友让文心一言作画&…

【2023,学点儿新Java-15】案例分享:基于Java实现餐厅点餐系统(附完整源代码)

前情回顾&#xff1a; 【2023&#xff0c;学点儿新Java-14】携程面试题&#xff1a;如何看待Java是一门半编译半解释型的语言&#xff1f;| 咨询互联网行业 资深前辈的一些问题 | 附&#xff1a;为什么说ChatGPT的核心算法是…&#xff1f;| GPT-3.5【2023&#xff0c;学点儿新…

文心一言作画:有点东西但不多...

随着ChatGPT的持续火热 与AI领域有关的话题 是越来越热闹了 前几天百度发布 “文心一言” 自然也成了网友们 重点关注的对象 不过大家的目光主要还是集中在 文心一言的绘画功能上 在人工智能加成下出来的画面 一个比一个绝 成功颠覆 大家对绘画的认知 生意火爆的商铺…

网传文心一言的魔性作图,有点被吓到...

来源&#xff1a;菜鸟教程 近日看到网友们用百度文心一言来作图&#xff0c;看了后我都愣住了。。。 1、AI 作画 -- 车水马龙 2、AI 作画 -- 驴肉火烧 3、AI 作画 -- 唐伯虎点秋香 4、AI 作画 -- 鱼香肉丝 5、AI 作画 -- 胸有成竹 6、AI 作画 -- 夫妻肺片 7、AI 作画 -- 红烧狮…

文心一言的魔性作图,我愣住了。。。

点关注公众号&#xff0c;回复“1024”获取2TB学习资源&#xff01; 最近&#xff0c;百度推出自己的AI大模型“文心一言”&#xff0c;李彦宏在发布会上表示&#xff0c;目前百度是全球大厂中第一个做出对标 ChatGPT 产品的企业。 但是&#xff0c;今天看到网友们用它来作图&a…

那些在学习GPT的过程中学到的

1、大模型是什么 GPT横空出世之后&#xff0c;大模型火了&#xff0c;什么是大模型呐&#xff1f; 大模型通常指的是具有大规模参数和复杂结构的深度学习模型。它们的设计和结构可以因任务而异&#xff0c;但以下是一些常见的大模型结构&#xff1a; Transformer&#xff1a…

LangChain 介绍及相关组件使用总结

一、langChain LangChain 是一个由语言模型LLMs驱动的应用程序框架&#xff0c;它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。…

第一代AIGC硬件悄然爆发

文 | 智能相对论 作者 | 叶远风 看起来&#xff0c;这可能是一副正常的黑框眼镜&#xff0c;你戴上去彬彬有礼、斯斯文文&#xff1b; 实际上&#xff0c;它里边还装了一个“小伙伴”&#xff0c;你随时可以与它交流&#xff0c;谈天说地或者提出各种问题接受它的帮助&#x…

chatgpt赋能python:小黑框:Python程序员必备利器

小黑框&#xff1a;Python程序员必备利器 如果您是一名Python程序员&#xff0c;小黑框&#xff08;Terminal&#xff09;一定不陌生。小黑框是一种基于文本的用户界面&#xff0c;通常用于执行命令行任务&#xff0c;编写或调试代码等。Python程序员可以通过小黑框完成许多任…

游戏开发中防外挂的那些事儿

对于一个要上线的游戏&#xff0c;防外挂是必须的&#xff0c;历史上因为外挂而造成大量玩家流失的游戏数不胜数。随着游戏研发技术的发展&#xff0c;对外挂的预防业内其实做的已经越来越好了。下面总结一下防外挂的基础知识&#xff0c;以及我们的移动模块为防外挂做了哪些工…

游戏反外挂技术原理讲解

永远在路上 没有破解不了的反外挂系统&#xff0c;反外挂是一个对抗过程&#xff0c;需要不断升级。我们反外挂小组会采取对抗方式提升防御&#xff0c;也会研究竞品来获取灵感。反外挂也是非常有意思的&#xff0c;可以学到很多很多底层知识。 善战者无赫赫之功 反外挂&#x…