File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -351,6 +351,28 @@ const findTargetSumWays = (nums, target) => {
351
351
};
352
352
```
353
353
354
+ TypeScript:
355
+
356
+ ``` ts
357
+ function findTargetSumWays(nums : number [], target : number ): number {
358
+ // 把数组分成两个组合left, right.left + right = sum, left - right = target.
359
+ const sum: number = nums .reduce ((a : number , b : number ): number => a + b );
360
+ if ((sum + target ) % 2 || Math .abs (target ) > sum ) return 0 ;
361
+ const left: number = (sum + target ) / 2 ;
362
+
363
+ // 将问题转化为装满容量为left的背包有多少种方法
364
+ // dp[i]表示装满容量为i的背包有多少种方法
365
+ const dp: number [] = new Array (left + 1 ).fill (0 );
366
+ dp [0 ] = 1 ; // 装满容量为0的背包有1种方法(什么也不装)
367
+ for (let i: number = 0 ; i < nums .length ; i ++ ) {
368
+ for (let j: number = left ; j >= nums [i ]; j -- ) {
369
+ dp [j ] += dp [j - nums [i ]];
370
+ }
371
+ }
372
+ return dp [left ];
373
+ };
374
+ ```
375
+
354
376
355
377
356
378
-----------------------
You can’t perform that action at this time.
0 commit comments