代码随想录算法训练营29期Day53|LeetCode 121,122

  文档讲解:买卖股票的最佳时机  买卖股票的最佳时机II

121.买卖股票的最佳时机

题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/

思路:

       挺简单的,假设就在今天卖出,那一定在前面买的时候最便宜的是最优解。我们每次记录前面的最小值,与当前值作差。求这个差值的最大值即可。

核心代码:

class Solution {
public:
    int maxProfit(vector& prices) {
        int money=0,minprice=prices[0];
        for(int i=1;iminprice) money=max(money,prices[i]-minprice);
            minprice=min(prices[i],minprice);
        }
        return money;
    }
};

122.买卖股票的最佳时机II

题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/

思路:

       这题很简单,是要求我们买卖股票,然后算最多赚多少。

       我们可以意识到这样一件事:我们连续几天买卖股票赚的钱,其实就是我们每天赚的钱加起来就行。所以我们这道题可以这样做:判断每天是否能赚钱,能赚的话就买股票,赚的钱加入答案中,不能赚就不买。这样最后赚的钱就最多。

核心代码:

class Solution {
public:
    int maxProfit(vector& prices) {
        int ans=0;
        int n=prices.size();
        for(int i=1;i0) ans+=prices[i]-prices[i-1];
        return ans;
    }
};

今日总结

        今日学习时长2h,今天的题还行,前面做过,思路很容易想到。

        快返校了,接着论文idea,头大。

你可能感兴趣的:(代码随想录算法训练营29期,leetcode,算法,职场和发展,c++,动态规划)