【贪心算法】Best Time to Buy and Sell Stocks(力扣121)

Problem Description

Say you have an array for which the ith element is the price of a given stock on day i. Design an algorithm to find the maximum profit. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times).

For example, there is an array [7, 1, 5, 3, 6, 4] and its answer 7. The element 7 in the array means the price of a given stock on day 0, and the element 4 means the price of the stock on day 5. The answer 7 means the maximum profit.

Note: You may not engage in multiple transactions at the same time (i.e., you must sell the stock before you buy again).

Input

An array with int elements, separated by spaces.

Output

An integer.

Sample Input

7 1 5 3 6 4

Sample Output

7

原题地址:

UOJ#53
Leetcode 121:买股票的最佳时机

#include 
#include 
#include 
using namespace std;
class Solution {
public:
    long maxProfit(vector<long>& prices){
        n = prices.size();
        for(int i = 1;i < n;i++){
            if( prices[i] > prices[i-1])
                sumProfit += prices[i] - prices[i-1];
        }
        return sumProfit;
    }
private:
    long n, sumProfit = 0;
};
int main(){
    long element;
    vector<long> prices;
    while (cin.peek()!='\n'){
        cin >> element;
        prices.push_back(element);
    }
    Solution sol;
    cout<<sol.maxProfit(prices)<<endl;
    return 0;
}

在这里插入图片描述

你可能感兴趣的:(国科大卜东坡算法)