From 4672df4638ef85a12556360e9d1b2c257035dda2 Mon Sep 17 00:00:00 2001 From: kok-s0s <2694308562@qq.com> Date: Thu, 16 Sep 2021 12:31:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9BJavaScript=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E7=9A=84=E3=80=8A=E6=9C=80=E5=90=8E=E4=B8=80=E5=9D=97=E7=9F=B3?= =?UTF-8?q?=E5=A4=B4=E7=9A=84=E9=87=8D=E9=87=8FII=E3=80=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1049.最后一块石头的重量II.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/problems/1049.最后一块石头的重量II.md b/problems/1049.最后一块石头的重量II.md index c09e476a..59c59189 100644 --- a/problems/1049.最后一块石头的重量II.md +++ b/problems/1049.最后一块石头的重量II.md @@ -219,7 +219,28 @@ func max(a, b int) int { } ``` +JavaScript版本 +```javascript +/** + * @param {number[]} stones + * @return {number} + */ +var lastStoneWeightII = function (stones) { + let sum = stones.reduce((s, n) => s + n); + + let dpLen = Math.floor(sum / 2); + let dp = new Array(dpLen + 1).fill(0); + + for (let i = 0; i < stones.length; ++i) { + for (let j = dpLen; j >= stones[i]; --j) { + dp[j] = Math.max(dp[j], dp[j - stones[i]] + stones[i]); + } + } + + return sum - dp[dpLen] - dp[dpLen]; +}; +``` ----------------------- * 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)