From 346b0713d8821d2d7fd9000b6cb71086d8bc0f04 Mon Sep 17 00:00:00 2001 From: nanhuaibeian <49868746+nanhuaibeian@users.noreply.github.com> Date: Wed, 12 May 2021 16:48:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Update=201049.=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E5=9D=97=E7=9F=B3=E5=A4=B4=E7=9A=84=E9=87=8D=E9=87=8FII.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加1049.最后一块石头的重量 Java版本 --- .../1049.最后一块石头的重量II.md | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/problems/1049.最后一块石头的重量II.md b/problems/1049.最后一块石头的重量II.md index 6f654fac..2fdaaa6f 100644 --- a/problems/1049.最后一块石头的重量II.md +++ b/problems/1049.最后一块石头的重量II.md @@ -155,7 +155,27 @@ public: Java: - +```Java +class Solution { + public int lastStoneWeightII(int[] stones) { + int sum = 0; + for (int i : stones) { + sum += i; + } + int target = sum >> 1; + //初始化dp数组 + int[] dp = new int[target + 1]; + for (int i = 0; i < stones.length; i++) { + //采用倒叙 + for (int j = target; j >= stones[i]; j--) { + //两种情况,要么放,要么不放 + dp[j] = Math.max(dp[j], dp[j - stones[i]] + stones[i]); + } + } + return sum - 2 * dp[target]; + } +} +``` Python: From a1d15df5e0b334fbc9c2a326e878c88018e37bb7 Mon Sep 17 00:00:00 2001 From: nanhuaibeian <49868746+nanhuaibeian@users.noreply.github.com> Date: Wed, 12 May 2021 16:56:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Update=201049.=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E5=9D=97=E7=9F=B3=E5=A4=B4=E7=9A=84=E9=87=8D=E9=87=8FII.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加1049.最后一块石头的重量 Java版本 --- problems/1049.最后一块石头的重量II.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/1049.最后一块石头的重量II.md b/problems/1049.最后一块石头的重量II.md index 2fdaaa6f..0ffd6a3e 100644 --- a/problems/1049.最后一块石头的重量II.md +++ b/problems/1049.最后一块石头的重量II.md @@ -166,7 +166,7 @@ class Solution { //初始化dp数组 int[] dp = new int[target + 1]; for (int i = 0; i < stones.length; i++) { - //采用倒叙 + //采用倒序 for (int j = target; j >= stones[i]; j--) { //两种情况,要么放,要么不放 dp[j] = Math.max(dp[j], dp[j - stones[i]] + stones[i]);