TomoLink
CompaniesZeptoData Structures & AlgorithmsTarget Sum
DSA
MediumArray

Target Sum

arraydynamic programmingbacktracking

Problem Statement

You are given an integer array nums and an integer target .

You want to build an expression out of nums by adding one of the symbols '+' and '-' before each integer in nums and then concatenate all the integers.

For example, if nums = [2, 1] , you can add a '+' before 2 and a '-' before 1 and concatenate them to build the expression "+2-1" .

Return the number of different expressions that you can build, which evaluates to target .

Examples

Example 1
Input: nums = [1,1,1,1,1], target = 3
Output: 5
There are 5 ways to assign symbols to make the sum of nums be target 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 +1 + 1 + 1 + 1 - 1 = 3
Example 2
Input: nums = [1], target = 1
Output: 1

Constraints

1 <= nums.length <= 20
0 <= nums[i] <= 1000
0 <= sum(nums[i]) <= 1000
-1000 <= target <= 1000
🤔
Medium
Difficulty
Topic Info
ModuleDSA
CategoryArray
Sub-topicDynamic Programming
Tags
arraydynamic programmingbacktracking
Navigation
Target Sum [Medium] | Zepto Dsa | TomoLink