Add new course
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
def sums(arr):
|
||||
# Create a set to store all the unique sums
|
||||
sums = set()
|
||||
|
||||
# Initialize a list with length equal to the length of arr
|
||||
# to store the previous results
|
||||
prev_results = [0] * len(arr)
|
||||
|
||||
# Iterate through each element in arr
|
||||
for i in range(len(arr)):
|
||||
# Initialize a temporary set to store the new sums
|
||||
temp = set()
|
||||
# Iterate through all the previous results
|
||||
for j in range(i):
|
||||
# Add the current element to each of the previous sums
|
||||
# and add the new sum to the set
|
||||
temp.add(arr[i] + prev_results[j])
|
||||
# Add the current element to the set
|
||||
temp.add(arr[i])
|
||||
# Update the list of previous results with the new sums
|
||||
prev_results[i] = temp
|
||||
# Update the set of all sums with the new sums
|
||||
sums = sums.union(temp)
|
||||
return len(sums)
|
||||
|
||||
|
||||
# Test
|
||||
if __name__ == "__main__":
|
||||
print(sums([1, 2, 3])) # 6
|
||||
print(sums([2, 2, 3])) # 5
|
||||
print(sums([1, 3, 5, 1, 3, 5])) # 18
|
||||
print(sums([1, 15, 5, 23, 100, 55, 2])) # 121
|
||||
Reference in New Issue
Block a user