diff --git a/problems/0053.最大子序和(动态规划).md b/problems/0053.最大子序和(动态规划).md index f1b64709..70ad7a84 100644 --- a/problems/0053.最大子序和(动态规划).md +++ b/problems/0053.最大子序和(动态规划).md @@ -226,18 +226,20 @@ object Solution { ```typescript function maxSubArray(nums: number[]): number { - /** - dp[i]:以nums[i]结尾的最大和 - */ - const dp: number[] = [] - dp[0] = nums[0]; - let resMax: number = 0; - for (let i = 1; i < nums.length; i++) { - dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]); - resMax = Math.max(resMax, dp[i]); + const len = nums.length + if (len === 1) return nums[0] + + const dp: number[] = new Array(len) + let resMax: number = dp[0] = nums[0] + + for (let i = 1; i < len; i++) { + dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]) + // 注意值为负数的情况 + if (dp[i] > resMax) resMax = dp[i] } - return resMax; -}; + + return resMax +} ```