Skip to content

Commit 71aa064

Browse files
committed
update readme
1 parent cbbd874 commit 71aa064

File tree

4 files changed

+93
-7
lines changed

4 files changed

+93
-7
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#Explanation
2+
##First: Fibonacci
3+
4+
we can use matrix fast pow to compute that.
5+
6+
see [fibonacci.py](fibonacci.py)
7+
8+
##Second: max sum sub arr
9+
10+
I reduce the problem into another one though doing prefix sum computation first.
11+
12+
see [max_sum_sub_arr.py](max_sum_sub_arr.py)
13+
14+
- input
15+
16+
```zsh
17+
[1, -2, 3, 10, -4, 7, 2, -5]
18+
```
19+
20+
- output
21+
22+
```zsh
23+
input list: [1, -2, 3, 10, -4, 7, 2, -5]
24+
scan list: [0, 1, -1, 2, 12, 8, 15, 17, 12]
25+
differ: 18
26+
sub arr input list lower idx: 2 value: 3
27+
sub arr input list upper idx: 6 value: 2
28+
sub arr: [3, 10, -4, 7, 2]
29+
30+
```
31+
32+
##Third: max len incremental sub arr
33+
34+
see [max_len_incre_sub_arr.py](max_len_incre_sub_arr.py)
35+
36+
- input
37+
38+
```zsh
39+
[7, 2, 3, 1, 5, 8, 9, 6]
40+
```
41+
42+
- output
43+
44+
```zsh
45+
max incre count: 5
46+
47+
root-1
48+
|_2
49+
|_3
50+
|_5
51+
|_8
52+
|_9
53+
54+
```
55+
56+
##Fourth
57+
58+
skip
59+
60+
##Fifth
61+
62+
see [min_sum_path.py](min_sum_path.py)
63+
64+
- input weight matrix
65+
66+
```zsh
67+
matrix = [[1, 2, 9], [3, 4, 8], [5, 6, 7]]
68+
```
69+
70+
- output
71+
72+
```zsh
73+
root[(2, 2)] (3, 3)
74+
|_[(2, 1)] (2, 2) weight: 7 min sum: 20
75+
|_[(1, 1)] (2, 1) weight: 6 min sum: 13
76+
|_[(0, 1)] (1, 1) weight: 4 min sum: 7
77+
|_[(0, 0)] (0, 1) weight: 2 min sum: 3
78+
|_None (0, 0) weight: 1 min sum: 1
79+
min sum:20
80+
81+
```

bioinformatics/dynamic_programming/max_len_incre_sub_arr.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def dfs_detail(node_ref, node_level):
4444
max_val = max(map(lambda node: node.max_len, node_arr))
4545
root_node = Node(-1)
4646
root_node.next_list = filter(lambda node: node.max_len == max_val, node_arr)
47-
print max_val
47+
48+
print 'max incre count:', max_val, '\n'
4849
print_tree(root_node)
4950

5051

bioinformatics/dynamic_programming/max_sum_sub_arr.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,13 @@ def max_difference_detail(i, j):
5454
input_list = [1, -2, 3, 10, -4, 7, 2, -5]
5555
scan_list = inclusive_scan(input_list)
5656
scan_list = [0] + scan_list
57-
print input_list
58-
print scan_list
59-
print max_difference(scan_list)
57+
print 'input list:', input_list
58+
print 'scan list:', scan_list
59+
min_idx, max_idx, differ = max_difference(scan_list)
60+
print 'differ:', differ
61+
print 'sub arr input list lower idx:', min_idx, 'value:', input_list[min_idx]
62+
print 'sub arr input list upper idx:', max_idx - 1, 'value:', input_list[max_idx - 1]
63+
print 'sub arr:', input_list[min_idx:max_idx]
6064

61-
scan_list1 = [0, 2, 4, 7, -1, 3, 6, -2, 4]
62-
print max_difference(scan_list1)
65+
# scan_list1 = [0, 2, 4, 7, -1, 3, 6, -2, 4]
66+
# print max_difference(scan_list1)

bioinformatics/dynamic_programming/min_sum_path.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ def dfs_detail(node_ref, node_level, cur_idx_pair):
5454

5555
if __name__ == '__main__':
5656
matrix = [[1, 2, 9], [3, 4, 8], [5, 6, 7]]
57-
print min_sum(matrix)
57+
print 'min sum:' + str(min_sum(matrix))

0 commit comments

Comments
 (0)