题目描述
假定你知道某只股票每一天价格的变动。
你最多可以同时持有一只股票。但你可以无限次的交易(买进和卖出均无手续费)。
请设计一个函数,计算你所能获得的最大收益。
示例1
输入
[5,4,3,2,1]
输出
0
说明
由于每天股票都在跌,因此不进行任何交易最优。最大收益为0。
dp[i][0/1]:表示第i天持有/未持有该股票的最大收益
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算最大收益
* @param prices int整型vector 股票每一天的价格
* @return int整型
*/
int maxProfit(vector<int>& prices) {
// write code here
int size = prices.size();
vector<vector<int>> dp(size, vector<int>(2, 0));//1表示持有,0表示未持有
dp[0][0]=0;
dp[0][1]=-prices[0];
for(int i=1;i<size;i++){
dp[i][0]=max(d