技術共有

【LeetCode 0122】【DSF/DP/Greedy】株を売買するのに最適な時期 2

2024-07-12

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

  1. 株式の売買に最適な時期 II

整数配列が与えられます prices どこprices[i] 特定の株式の価格はi^th 日。

毎日、株式の購入と売却を決めることができます。保有できるのは 最大1つ いつでも株式を売却することができます。ただし、購入してすぐに売却することもできます。同日.

検索して返す 最大 達成できる利益.

例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