LeetCode:121.买卖股票的最佳时机

解题思路:

  • 有利润的情况肯定是从小的开始,向上增加,记录即可,同时特别i情况,后面出现了更小的值,此时有两种情况,
  • 1、后面的增率很小,小于前面出现的maxprice,那么maxprice依旧是前面的那个高一点的天投入获得的最大利润
  • 2、后面增率很大,差值超过了前面的,那就更不用看了,就是没分情况之前的LeetCode:121.买卖股票的最佳时机_第1张图片


代码:

C++:

class Solution {
public:
    int maxProfit(vector& prices) {
        int minprice = INT_MAX, maxprofit = 0;
        for (int price : prices) {
            maxprofit = max(maxprofit, price - minprice);
            minprice = min(minprice, price);
        }
        return maxprofit;
    }
};

python:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        minprice = inf
        maxprofit = 0
        for price in prices:
            maxprofit = max(maxprofit, price-minprice)
            minprice = min(minprice, price)
        return maxprofit

你可能感兴趣的:(#,力扣,leetcode,算法,职场和发展)