Partition Equal Subset Sum (Leetcode 416)

Problem Link: https://leetcode.com/problems/partition-equal-subset-sum/

class Solution:
    def canPartition(self, nums: List[int]) -> bool:
        
        n=len(nums)
        s=sum(nums)
        if(s%2!=0):
            return False
        
        s=s//2
        dp=[[0 for i in range(s+1)] for j in range(n+1)]
        for i in range(n+1):
            for j in range(s+1):
                if(i==0):
                    dp[i][j]=False
                if(j==0):
                    dp[i][j]=True
                else:
                    if(nums[i-1]<=j):
                        inc=dp[i-1][j-nums[i-1]]
                        exc=dp[i-1][j]
                        dp[i][j]=(inc or exc)
                    else:
                        exc=dp[i-1][j]
                        dp[i][j]=exc
        return dp[n][s]

Last updated