题目描述

想象我们平时买股票,肯定希望是在最低点买入,最高点卖出的,那么我们就可以遍历一下数组,要先记录最地位,也就是股票最低的时候你需要买入~那么什么时候卖出呢?我们假设一共有n天,第一天位最低为,那么你就要分别记录每天卖出的价格,然后去除最大的利润~最低买入价格位min,那么以后每天的价格就是n[price]-min的价格,分别记录他们~~我们首先设一个最小值。和一个最大值~
int maxProfit(vector<int>& prices) {
int inf = 1e9;
//先设置一个最小买入的值,开始设置大一些,因为我们希望
//以后每次买入的价格都比这个值小~利润是每次都比原来的利润大~
int minprice = inf, maxprofit = 0;
//
for (int price: prices) {
//最大利润即为每天的价格减去最开始设定的价格~
maxprofit = max(maxprofit, price - minprice);
//需要记录最小值~~
minprice = min(price, minprice);
}

本文介绍了如何使用动态规划方法解决股票交易的最佳时机问题和找到连续子数组的最大和。对于股票交易问题,策略是记录最低买入价格,并在后续天数中计算每天的收益。对于连续子数组最大和,分析了三种情况并提出了相应的动态规划方程f(i)=max{f(i−1)+nums[i],nums[i]}。"
115894796,10535506,MATLAB定时器用法详解,"['MATLAB', '定时器', '编程']
最低0.47元/天 解锁文章
456

被折叠的 条评论
为什么被折叠?



