【贪心算法】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 <iostream>
#include <cstring>
#include <vector>
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;
}

在这里插入图片描述

发布了126 篇原创文章 · 获赞 438 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/SL_World/article/details/103322562