力扣-122-买卖股票的最佳时机Ⅱ

你也可以先购买,然后在 同一天 出售

这句有什么意义?逻辑上说跟不买没区别,但是可能跟算法实现有关系感觉

很明显是动态规划,二维的吗?

单笔交易我们是这么做的:
维护一个最低购入价格,并计算每天最大获利=当前价格-最低购入
最后如果最大获利>0就直接返回,否则返回0

这个数组的最大值位置是不确定的,至少还需要一个变量保存最大利润
dp数组也是不必要的,两个变量就够了

没什么思路,然后评论提醒

你也可以先购买,然后在 同一天 出售

这个意思其实是你也可以先出售,然后在同一天购买

所以最终就变成了,只要昨天价格比今天便宜那就卖,反正如果明天更贵今天还能买回来

想到评论区开玩笑说就按这个买股票,但是很明显——你不会知道每天股票的价格
但是参考意义也有,你只要在足够低的时候买入,任何时候卖多少度都赚(好像是废话)

int maxProfit(vector<int>& prices) {
	int max = 0;
	for (int i = 1; i < prices.size(); i++)
		if (prices[i] > prices[i - 1])
			max += prices[i] - prices[i - 1];
	return max;
}

绝对想不到可以写得这么简单

posted @ 2022-11-11 09:53  YaosGHC  阅读(14)  评论(0)    收藏  举报