算法题每日一练---第39天:买卖股票的最佳时机

简介: 给定一个数组 prices,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

3.png

一、问题描述


给定一个数组 prices,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。


你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。


返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。


题目链接:买卖股票的最佳时机


二、题目要求


示例 :

输入: [7,1,5,3,6,4]
输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出.
最大利润=6-1=5注意利润不能是7-1=6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。


考察

动态规划中等题型
建议用时15~30min


三、问题分析


一开始,我想用双重for循环暴力法,看看能不能过,没想到力扣测试的数据量这么大,直接芭比Q!

20.png

毕竟是动态规划,还是老老实实用我们的三步走,老套路:


第一步 含义搞懂:

我们平时买股票是看不见股票如何变化的,现在给你每一天的价格,我们肯定希望在最低的时候买入,在最高点卖出了。


第二步 变量初始:


min=prices[0]
max=0,最低价格为0


第三步 规律归纳:

21.png

定义双变量,min代表0~i-1区间的最低价格(买入),max代表第i天卖出获得的利润。

三步走,打完收工!


四、编码实现


classSolution {
public:
intmaxProfit(vector<int>&prices) {
inti,n=prices.size(), ans=0,k=prices[0];//初始化数据for(i=1;i<n;i++)//循环判断        {
ans=max(ans,prices[i]-k);//卖出k=min(k,prices[i]);//买入        }
returnans;//输出结果    }
};

五、测试结果

22.png



相关文章
|
6月前
|
算法 C++ Python
leetcode-122:买卖股票的最佳时机 II (贪心算法)
leetcode-122:买卖股票的最佳时机 II (贪心算法)
49 1
|
1月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
66 0
|
5月前
|
算法
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
|
6月前
|
数据采集 监控 算法
应用动态规划算法解决可转债软件中的最优买卖时机问题
使用动态规划算法解决可转债市场的最佳买卖时机问题。定义状态dp[i][0](持有可转债的最大利润)和dp[i][1](不持有可转债的最大利润),通过状态转移方程更新状态,以max函数求解。提供的Python代码示例展示了如何计算最大利润。将此算法集成到软件中,结合网络爬虫获取实时价格,自动计算并提供买卖建议,助力投资者做出更明智的决策。
131 0
|
6月前
|
算法 数据可视化 数据挖掘
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
|
6月前
|
机器学习/深度学习 自然语言处理 算法
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享(下)
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享
|
6月前
|
机器学习/深度学习 算法 大数据
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享(上)
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享
|
6月前
|
算法 Java 索引
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
47 0
|
6月前
|
存储 算法 JavaScript
JS算法-买卖股票的时机
JS算法-买卖股票的时机
|
6月前
|
算法 Java 索引
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
46 0