本文主要是介绍算法刷题记录 Day42,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法刷题记录 Day42
Date: 2024.04.09
lc 122. 买卖股票的最佳时机II
// dp
class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();if(n == 1) return 0;// dp[i]表示第i天的最大利润;// dp[i] = dp[i-1] + max(prices[i]-prices[i-1], 0);vector<int> dp(n, 0);for(int i=1; i<n; i++){dp[i] = dp[i-1] + max(prices[i]-prices[i-1], 0);}return dp[n-1];}
};// 贪心
class Solution {
public:int maxProfit(vector<int>& prices) {int res = 0;// 只要比昨天涨了,昨天就买,今天就卖for(int i=1; i<prices.size(); i++){if(prices[i] > prices[i-1])res += (prices[i] - prices[i-1]);}return res;}
};
lc 121. 卖卖股票的最佳时机
// 贪心
class Solution {
public:int maxProfit(vector<int>& prices) {// 取后项-前项中的最大值。1.暴力ON^2.// 2.从左往右遍历。记录当前的最小值和当前值减去最小值的大小;// 3. dp[i] 表示在前i天中完成买入和卖出的最大利润;// dp[i] = int n = prices.size();int cur_min = INT_MAX;int cur_res = 0;for(int i=0; i<n; i++){if(i > 0)cur_res = max(cur_res, prices[i] - cur_min);cur_min = min(prices[i], cur_min);}return cur_res;}
};
这篇关于算法刷题记录 Day42的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!