From e452f183adde4732da370e14dc0379ebffd0bdbe Mon Sep 17 00:00:00 2001 From: fwqaaq Date: Fri, 30 Jun 2023 13:14:26 +0800 Subject: [PATCH] =?UTF-8?q?Update=200123.=E4=B9=B0=E5=8D=96=E8=82=A1?= =?UTF-8?q?=E7=A5=A8=E7=9A=84=E6=9C=80=E4=BD=B3=E6=97=B6=E6=9C=BAIII.md=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=85=83=E7=A5=96=E4=BC=98=E5=8C=96=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0123.买卖股票的最佳时机III.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/problems/0123.买卖股票的最佳时机III.md b/problems/0123.买卖股票的最佳时机III.md index 7286e957..a646b7d5 100644 --- a/problems/0123.买卖股票的最佳时机III.md +++ b/problems/0123.买卖股票的最佳时机III.md @@ -447,15 +447,15 @@ impl Solution { ```rust impl Solution { pub fn max_profit(prices: Vec) -> i32 { - let mut dp = vec![0, -prices[0], 0, -prices[0], 0]; + let (mut one_buy, mut one_sale, mut two_buy, mut two_sale) = (-prices[0], 0, -prices[0], 0); for p in prices { - dp[1] = dp[1].max(-p); - dp[2] = dp[2].max(dp[1] + p); - dp[3] = dp[3].max(dp[2] - p); - dp[4] = dp[4].max(dp[3] + p); + one_buy = one_buy.max(-p); + one_sale = one_sale.max(p + one_buy); + two_buy = two_buy.max(one_sale - p); + two_sale = two_sale.max(two_buy + p); } - dp[4] + two_sale } } ```