From 52033af3dc29e2dd0b56742c59084ec4045412fa Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sat, 17 Mar 2018 14:43:21 +0800 Subject: [PATCH] auto commit --- notes/Redis.md | 2 ++ notes/剑指 offer 题解.md | 11 +++++++++++ pics/080f488c-75ef-49a8-a49d-78fa372ad422.png | Bin 0 -> 8192 bytes 3 files changed, 13 insertions(+) create mode 100644 pics/080f488c-75ef-49a8-a49d-78fa372ad422.png diff --git a/notes/Redis.md b/notes/Redis.md index 82373006..3f76efb1 100644 --- a/notes/Redis.md +++ b/notes/Redis.md @@ -70,6 +70,8 @@ OK

+ + ```html > rpush list-key item (integer) 1 diff --git a/notes/剑指 offer 题解.md b/notes/剑指 offer 题解.md index 29952f2f..9c3177b3 100644 --- a/notes/剑指 offer 题解.md +++ b/notes/剑指 offer 题解.md @@ -97,6 +97,7 @@ - begin, end 表示左闭右开区间:[begin, end); - l, h 表示二分查找的闭区间:[l, h]; - ret 表示结果相关的变量; +- dp 表示动态规划保存子问题的数组; **复杂度简写说明** @@ -435,6 +436,16 @@ public int pop() { 以 O(1) 的时间复杂度求菲波那切数列。 +

+ +**解题思路** + +如果使用递归求解,那么会重复计算一些子问题。例如,求 f(10) 需要计算 f(9) 和 f(8),计算 f(9) 需要计算 f(8) 和 f(7),可以看到 f(8) 被重复计算了。 + +

+ +递归方法是将一个问题划分成多个子问题求解,动态规划也是如此,但是动态规划会把子问题的解缓存起来,避免重复求解子问题。 + ```java public class Solution { private int[] fib = new int[40]; diff --git a/pics/080f488c-75ef-49a8-a49d-78fa372ad422.png b/pics/080f488c-75ef-49a8-a49d-78fa372ad422.png new file mode 100644 index 0000000000000000000000000000000000000000..c40ea2d20231aa20bd4379aa592be50e86568ea5 GIT binary patch literal 8192 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 literal 0 HcmV?d00001