You are given a list of non-negative integers, a1, a2, …, an, and a target, S. Now you have 2 symbols +
and -
. For each integer, you should choose one from +
and -
as its new symbol.
Find out how many ways to assign symbols to make sum of integers equal to target S.
Example 1:
1 | Input: nums is [1, 1, 1, 1, 1], S is 3. |
Note:
- The length of the given array is positive and will not exceed 20.
- The sum of elements in the given array will not exceed 1000.
- Your output answer is guaranteed to be fitted in a 32-bit integer.
解题思路
这道题是需要用数组里的所有数字经过+或者-的运算后得到所要求的数字。用一个DFS递归完所有可能性,满足情况的给结果加一就可以了。
解题代码【.CPP】
1 | class Solution { |