Skip to content

Commit 2cafdec

Browse files
author
sarangbishal
committed
Add finding subset example
1 parent 6031e09 commit 2cafdec

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

examples/fibonacci.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# Import Visualiser class from module visualiser
44
from visualiser.visualiser import Visualiser as vs
55

6+
67
# Add decorator
78
# Decorator accepts arguments: ignore_args and show_argument_name
89
@vs(ignore_args=['node_num'])

examples/subset.png

44 KB
Loading

examples/subset.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Author: Bishal Sarang
2+
3+
# Import Visualiser class from module visualiser
4+
from visualiser.visualiser import Visualiser as vs
5+
6+
"""
7+
Given an array of numbers, find all the subsets:
8+
eg: nums = [1, 2, 3]
9+
Output:
10+
[[], [1], [2], [2, 1], [3], [3, 1], [3, 2], [3, 2 , 1]]
11+
You can find my explanation here: https://qr.ae/TWHmsi
12+
"""
13+
14+
subsets = []
15+
@vs(ignore_args=["node_num", "nums"], show_return_value=False, show_argument_name=False)
16+
def f(nums, i, current_subset, node_num):
17+
# If no more elements left
18+
if i == 0:
19+
subsets.append(current_subset)
20+
return
21+
# Exclude Current element
22+
vs.node_count += 1
23+
f(nums=nums, i=i - 1, current_subset=current_subset, node_num=vs.node_count)
24+
25+
# Include current element
26+
vs.node_count += 1
27+
f(nums=nums, i=i - 1, current_subset=current_subset + [nums[i - 1]], node_num=vs.node_count)
28+
29+
if __name__ == "__main__":
30+
nums = [1, 2, 3]
31+
f(nums=nums, i = len(nums), current_subset=[], node_num=0)
32+
vs.write_image("subset.png")

0 commit comments

Comments
 (0)