LeetCode Best Time to Buy and Sell Stock II (简单题)

本文介绍了一种求解股票买卖最大利润的算法思路。通过跟踪每日价格变化趋势,确保在股价上升时卖出,并始终保持买入价格为当前持有股票的最低价格。提供了一段C++代码实现,用于计算给定价格序列的最大收益。

 

 

题意:

  股票买卖第2题。给出每天的股票价格,每次最多买一股,可以多次操作,但是每次在买之前必须保证身上无股票。问最大的利润?

 

思路:

  每天的股票价格可以看成是一条曲线,能卖掉就卖掉,那么肯定是在上升的时候就可以卖掉,但是在不卖的时候要保证自己身上的那只股票的价格是最低价买进的。

 

 

 1 class Solution {
 2 public:
 3     int maxProfit(vector<int>& prices)
 4     {
 5         int pre=2147483647, ans=0;
 6         for(int i=0; i<prices.size(); i++)
 7         {
 8             if( pre<2147483647 && pre<prices[i] )
 9             {
10                 ans+=prices[i]-pre;
11                 pre=prices[i];            
12             }
13             else
14                 pre=min(pre,prices[i]);
15         }
16         return ans;
17     }
18 };
AC代码

 

转载于:https://www.cnblogs.com/xcw0754/p/4918527.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值