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
Example 1:
Input: nums is [1, 1, 1, 1, 1], S is 3.
Output: 5
Explanation:
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
There are 5 ways to assign symbols to make the sum of nums be target 3.
Example 2:
Input: nums is [], S is 3.
Output: 0
Explanation:
There are 0 way to assign symbols to make the sum of nums be target 3.
Notice
- 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.
Solution:
Backpacking DP problem.
public class Solution { /** * @param nums: the given array * @param s: the given target * @return: the number of ways to assign symbols to make sum of integers equal to target S */ public int findTargetSumWays(int[] nums, int s) { // Write your code here if (nums == null || nums.length == 0) { return 0; } int sum = 0; for (int num : nums) { sum += num; } if (s > Math.abs(sum)) { return 0; } int[][] dp = new int[nums.length + 1][2 * sum + 1]; dp[0][sum] = 1; // index = num + sum; for (int i = 1; i <= nums.length; i++) { for (int j = 0; j < 2 * sum + 1; j++) { if (j - nums[i - 1] >= 0) { dp[i][j] = dp[i - 1][j - nums[i - 1]]; } if (j + nums[i - 1] < 2 * sum + 1) { dp[i][j] += dp[i - 1][j + nums[i - 1]]; } } } return dp[nums.length][s + sum]; } }
Writing on any subject is not an easy task, when you write on any subject it is very difficult. Anyone who thinks that he will write something easily on any subject, then his thinking is very wrong, I do not know that perhaps those people will have to put so much mind. Whatever you have written in your post, it has been written very beautifully, you are a person writing a good post, the more you are praised, the less it is.
ReplyDeleteEscort Service in Sector 50
Phase 4 Call Girls
call girls in golf course road
escorts girls in sector 2 gurugram
Call Girls in Sector 49
Call Girls In Sector 48
escort girls in sector 1
important to use mask
good friend
escort service in gurugram