diff --git a/README.md b/README.md index 1c8d6ead..1afadc35 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,8 @@ https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ https://leetcode-cn.com/problems/add-two-numbers/ +https://leetcode-cn.com/problems/maximum-subarray/ + #### 安装教程 1. 安装`deno` diff --git a/add-two-numbers/index.ts b/add-two-numbers/index.ts index f623e410..83b8461f 100644 --- a/add-two-numbers/index.ts +++ b/add-two-numbers/index.ts @@ -14,7 +14,7 @@ import { ListNode } from "../reverse-linked-list/ListNode.ts"; export default function addTwoNumbers( l1: ListNode | null, - l2: ListNode | null + l2: ListNode | null, ): ListNode | null { if (!l1) return l2; if (!l2) return l1; diff --git a/maximum-subarray/index.ts b/maximum-subarray/index.ts new file mode 100644 index 00000000..27387cf9 --- /dev/null +++ b/maximum-subarray/index.ts @@ -0,0 +1,10 @@ +export default function maxSubArray(nums: number[]): number { + let max = nums[0]; + const dp = [nums[0]]; + for (let i = 1; i < nums.length; i++) { + dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]); + max = Math.max(max, dp[i]); + } + // const dp=nums.map((v,i,a)=>i===0?nums[0]:Math.max(v,v+(dp[i-1]||0))) + return max; +}