File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1+ def isSumSubset (arr , arrLen , requiredSum ):
2+
3+ # a subset value says 1 if that subset sum can be formed else 0
4+ #initially no subsets can be formed hence False/0
5+ subset = ([[False for i in range (requiredSum + 1 )] for i in range (arrLen + 1 )])
6+
7+ #for each arr value, a sum of zero(0) can be formed by not taking any element hence True/1
8+ for i in range (arrLen + 1 ):
9+ subset [i ][0 ] = True
10+
11+ #sum is not zero and set is empty then false
12+ for i in range (1 , requiredSum + 1 ):
13+ subset [0 ][i ] = False
14+
15+ for i in range (1 , arrLen + 1 ):
16+ for j in range (1 , requiredSum + 1 ):
17+ if arr [i - 1 ]> j :
18+ subset [i ][j ] = subset [i - 1 ][j ]
19+ if arr [i - 1 ]<= j :
20+ subset [i ][j ] = (subset [i - 1 ][j ] or subset [i - 1 ][j - arr [i - 1 ]])
21+
22+ #uncomment to print the subset
23+ # for i in range(arrLen+1):
24+ # print(subset[i])
25+
26+ return subset [arrLen ][requiredSum ]
27+
28+ arr = [2 , 4 , 6 , 8 ]
29+ requiredSum = 5
30+ arrLen = len (arr )
31+ if isSumSubset (arr , arrLen , requiredSum ):
32+ print ("Found a subset with required sum" )
33+ else :
34+ print ("No subset with required sum" )
You can’t perform that action at this time.
0 commit comments