494. Target Sum - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def findTargetSumWays(self, arr: List[int], target: int) -> int:

        dppos = []


        for i in range(2001):
            k = []
            for i in range(len(arr) + 1):
                k.append(-1)

            dppos.append(k)






        def trav(s, j):
            if s == target and j == len(arr):
                return 1

            if j == len(arr):
                return 0



            if dppos[s + 1000][j] != -1:
                return dppos[s + 1000][j]
            dppos[s + 1000][j] = 0





            dppos[s + 1000][j]  += trav(s + arr[j], j+1)
            dppos[s + 1000][j] += trav(s - arr[j] , j+1)

            return dppos[s + 1000][j]


        return trav(0, 0)


Comments

Submit
0 Comments
More Questions

1726H - Mainak and the Bleeding Polygon
722A - Broken Clock
129B - Students and Shoelaces
697B - Barnicle
903D - Almost Difference
1443B - Saving the City
1215C - Swap Letters
1251C - Minimize The Integer
1494B - Berland Crossword
295A - Greg and Array
1433E - Two Round Dances
1612D - X-Magic Pair
41B - Martian Dollar
906C - Party
774F - Pens And Days Of Week
598B - Queries on a String
1303B - National Project
1303D - Fill The Bag
1198B - Welfare State
1739B - Array Recovery
1739C - Card Game
1739A - Immobile Knight
1739D - Reset K Edges
817B - Makes And The Product
1452C - Two Brackets
400B - Inna and New Matrix of Candies
870B - Maximum of Maximums of Minimums
1600E - Array Game
1149A - Prefix Sum Primes
277A - Learning Languages