From 530422fa3ecf004d27f45552e909506947992902 Mon Sep 17 00:00:00 2001 From: Luo <82520819+jerry-306@users.noreply.github.com> Date: 2022年5月23日 10:04:15 +0800 Subject: [PATCH] =?UTF-8?q?0416.=E5=88=86=E5=89=B2=E7=AD=89=E5=92=8C?= =?UTF-8?q?=E5=AD=90=E9=9B=86=20=E6=96=B0=E5=A2=9E=20typescript=20?= =?UTF-8?q?=E8=A7=A3=E6=B3=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...11345円222円214円345円255円220円351円233円206円.md" | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git "a/problems/0416.345円210円206円345円211円262円347円255円211円345円222円214円345円255円220円351円233円206円.md" "b/problems/0416.345円210円206円345円211円262円347円255円211円345円222円214円345円255円220円351円233円206円.md" index 6e93ae8e80..01ea825e8f 100644 --- "a/problems/0416.345円210円206円345円211円262円347円255円211円345円222円214円345円255円220円351円233円206円.md" +++ "b/problems/0416.345円210円206円345円211円262円347円255円211円345円222円214円345円255円220円351円233円206円.md" @@ -416,7 +416,24 @@ var canPartition = function(nums) { }; ``` - +TypeScript: + +```ts +function canPartition(nums: number[]): boolean { + const sum: number = nums.reduce((a: number, b: number): number => a + b); + if (sum % 2 === 1) return false; + const target: number = sum / 2; + // dp[j]表示容量(总数和)为j的背包所能装下的数(下标[0, i]之间任意取)的总和(<= 容量)的最大值 + const dp: number[] = new Array(target + 1).fill(0); + const n: number = nums.length; + for (let i: number = 0; i < n; i++) { + for (let j: number = target; j>= nums[i]; j--) { + dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]); + } + } + return dp[target] === target; +}; +``` -----------------------