Skip to content

Commit 530422f

Browse files
authored
0416.分割等和子集 新增 typescript 解法代码
1 parent 0c220c5 commit 530422f

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

problems/0416.分割等和子集.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,24 @@ var canPartition = function(nums) {
416416
};
417417
```
418418

419-
419+
TypeScript:
420+
421+
```ts
422+
function canPartition(nums: number[]): boolean {
423+
const sum: number = nums.reduce((a: number, b: number): number => a + b);
424+
if (sum % 2 === 1) return false;
425+
const target: number = sum / 2;
426+
// dp[j]表示容量(总数和)为j的背包所能装下的数(下标[0, i]之间任意取)的总和(<= 容量)的最大值
427+
const dp: number[] = new Array(target + 1).fill(0);
428+
const n: number = nums.length;
429+
for (let i: number = 0; i < n; i++) {
430+
for (let j: number = target; j >= nums[i]; j--) {
431+
dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]);
432+
}
433+
}
434+
return dp[target] === target;
435+
};
436+
```
420437

421438

422439
-----------------------

0 commit comments

Comments
 (0)