Skip to content

Commit cc57b88

Browse files
ninth week
1 parent 357827a commit cc57b88

1 file changed

Lines changed: 53 additions & 1 deletion

File tree

Week_09/README.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,53 @@
1-
学习笔记
1+
#### 分治法递归模板
2+
3+
```
4+
private static int divide_conquer(Problem problem, ) {
5+
6+
if (problem == NULL) {
7+
int res = process_last_result();
8+
return res;
9+
}
10+
subProblems = split_problem(problem)
11+
12+
res0 = divide_conquer(subProblems[0])
13+
res1 = divide_conquer(subProblems[1])
14+
15+
result = process_result(res0, res1);
16+
17+
return result;
18+
}
19+
```
20+
21+
#### dp
22+
23+
```
24+
public void recur(int level, int param) {
25+
// terminator
26+
if (level > MAX_LEVEL) {
27+
// process result
28+
return;
29+
}
30+
// process current logic
31+
process(level, param);
32+
// drill down
33+
recur( level: level + 1, newParam);
34+
// restore current status
35+
}
36+
```
37+
38+
#### 分治
39+
40+
```
41+
private static int divide_conquer(Problem problem, ) {
42+
if (problem == NULL) {
43+
int res = process_last_result();
44+
return res;
45+
}
46+
subProblems = split_problem(problem);
47+
res0 = divide_conquer(subProblems[0]);
48+
res1 = divide_conquer(subProblems[1]);
49+
// res...
50+
result = process_result(res0, res1, ...);
51+
return result;
52+
}
53+
```

0 commit comments

Comments
 (0)