用递归做,但是比较慢。网上有用动态规划做的
http://blog.youkuaiyun.com/hit0803107/article/details/54894227
public class Solution {
int res = 0;
public int findTargetSumWays(int[] nums, int S) {
if (nums == null || nums.length == 0) return res;
helper(S, 0, 0, nums);
return res;
}
private void helper(int S, int sum, int pos, int[] nums) {
if (sum == S && nums.length == pos) {
res++;
}
else if (nums.length == pos) {
return;
}
else {
helper(S, sum + nums[pos], pos + 1, nums);
helper(S, sum - nums[pos], pos + 1, nums);
}
}
}