1. 程式人生 > >Best Time to Buy and Sell Stock II - LeetCode

Best Time to Buy and Sell Stock II - LeetCode

價格 lar 之前 復雜 src 賣出 .com time 描述

目錄

  • 題目鏈接
  • 註意點
  • 解法
  • 小結

題目鏈接

Best Time to Buy and Sell Stock II - LeetCode

註意點

  • 在賣出之前必須要先購入
  • 不限買入賣出次數

解法

解法一:因為股票的原則就是低入高出,因此從第1天開始(下標從0開始)只要當天的價格高於前一天就可以進行一次交易。遍歷一趟數組就可以完成。時間復雜度O(n)

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int ret = 0,size = prices.size();
        for(int i = 1;i < size;i++) ret += (prices[i]-prices[i-1]) > 0 ? (prices[i]-prices[i-1]) : 0;
        return ret;
    }
};

技術分享圖片

小結

  • 題目的描述很有誤導性,不一定要找差值最大的兩個價格,只要有利潤就可以進行一次交易

Best Time to Buy and Sell Stock II - LeetCode