Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 71f1410

Browse files
优化了121动态规划版本二的解题代码^C题代码
1 parent 7cef253 commit 71f1410

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

‎problems/0121.买卖股票的最佳时机.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,14 @@ class Solution {
249249
// 所以我们从 i=1 开始遍历数组,一共有 prices.length 天,
250250
// 所以是 i<=prices.length
251251
for (int i = 1; i <= prices.length; i++) {
252-
int temp = dp[0];
253252
// 前一天持有;或当天买入
254-
dp[0] = Math.max(temp, -prices[i - 1]);
253+
dp[0] = Math.max(dp[0], -prices[i - 1]);
254+
// 如果 dp[0] 被更新,那么 dp[1] 肯定会被更新为正数的 dp[1]
255+
// 而不是 dp[0]+prices[i-1]==0 的0,
256+
// 所以这里使用会改变的dp[0]也是可以的
257+
// 当然 dp[1] 初始值为 0 ,被更新成 0 也没影响
255258
// 前一天卖出;或当天卖出, 当天要卖出,得前一天持有才行
256-
dp[1] = Math.max(dp[1], temp + prices[i - 1]);
259+
dp[1] = Math.max(dp[1], dp[0] + prices[i - 1]);
257260
}
258261
return dp[1];
259262
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /