Skip to content

Commit aef17a2

Browse files
committed
sum numbers
1 parent 1422b6a commit aef17a2

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
numbers: list = [1, 2, 3, 4, 5]
2+
3+
4+
# O(n) time, O(logn) space
5+
def sum_numbers(nums: list) -> int:
6+
7+
def helper(elements: list, start: int, end: int) -> int:
8+
if start > end:
9+
return 0
10+
else:
11+
index: int = start + (end - start) // 2
12+
return helper(elements, start, index - 1) + elements[index] + helper(elements, index + 1, end)
13+
14+
return helper(nums, 0, len(nums) - 1)
15+
16+
17+
print(sum_numbers(numbers))

recursion/sum-numbers-pointer.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
numbers: list = [1, 2, 3, 4, 5]
2+
3+
4+
# O(n) time, O(n) space
5+
def sum_numbers(nums: list) -> int:
6+
7+
def helper(elements: list, end: int) -> int:
8+
if end < 0:
9+
return 0
10+
else:
11+
return elements[end] + helper(elements, end - 1)
12+
13+
return helper(nums, len(nums) - 1)
14+
15+
16+
print(sum_numbers(numbers))

recursion/sum-numbers-slicing.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
numbers: list = [1, 2, 3, 4, 5]
2+
3+
4+
def sum_numbers(nums: list) -> int:
5+
if len(nums) == 0:
6+
return 0
7+
else:
8+
return nums[0] + sum_numbers(nums[1:])
9+
10+
11+
print(sum_numbers(numbers))

recursion/towers-of-hanoi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ def towers(number: int, start: str, spare: str, end: str):
1111
towers(number - 1, spare, start, end)
1212

1313

14-
towers(3, "start", "spare", "end")
14+
towers(3, "start", "spare", "end")

0 commit comments

Comments
 (0)