Κοινή χρήση τεχνολογίας

【LeetCode 0122】【DSF/DP/Greedy】Η καλύτερη στιγμή για αγορά και πώληση μετοχών 2

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  1. Καλύτερη ώρα για αγορά και πώληση μετοχών II

Σας δίνεται ένας ακέραιος πίνακας prices πουprices[i] είναι η τιμή μιας δεδομένης μετοχής στοi^th ημέρα.

Κάθε μέρα, μπορεί να αποφασίσετε να αγοράσετε ή/και να πουλήσετε το απόθεμα. Μπορείτε μόνο να κρατήσετετο πολύ ένα μερίδιο της μετοχής ανά πάσα στιγμή. Ωστόσο, μπορείτε να το αγοράσετε και να το πουλήσετε αμέσως στοίδια ημέρα.

Βρείτε και επιστρέψτε ο ανώτατο όριο κέρδος που μπορείτε να επιτύχετε.

Παράδειγμα 1:

**Input:** prices = [7,1,5,3,6,4]
**Output:** 7
**Explanation:** Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4.
Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3.
Total profit is 4 + 3 = 7.
  • 1
  • 2
  • 3
  • 4
  • 5

Παράδειγμα 2:

**Input:** prices = [1,2,3,4,5]
**Output:** 4
**Explanation:** Buy on day 1 (price = 1) and sell on day 5 (price = 5), profit = 5-1 = 4.
Total profit is 4.
  • 1
  • 2
  • 3
  • 4

Παράδειγμα 3:

**Input:** prices = [7,6,4,3,1]
**Output:** 0
**Explanation:** There is no way to make a positive profit, so we never buy the stock to achieve the maximum profit of 0.
  • 1
  • 2
  • 3

Περιορισμοί:

  • 1 <= prices.length <= 3 * 10^4
  • 0 <= prices[i] <= 10^4
Ιδέα
* DSF
* DP
* Greedy
  • 1
  • 2
  • 3
/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    let res = 0;
    for(let i = 1; i < prices.length; i++){
        if(prices[i-1] < prices[i]){ // 将每天的收益看作自己的收益
            res += prices[i] - prices[i-1]
        }
    }
    return res;
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13