From 49a5bc55b7adc3ede7f4dbbd2a92f38197982aa8 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Sun, 16 Dec 2018 21:34:57 +0800 Subject: [PATCH] docs(notes): update coding-interview 10.4 - Update coding-interview 10.4(Jump Floor II) - Add a contributor @yanglbme in README.md --- README.md | 4 +++ ...214\207 offer \351\242\230\350\247\243.md" | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/README.md b/README.md index 495e0843b0..4b3ce7c524 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,10 @@ Power by [logomakr](https://logomakr.com/). + +​ + + #### License diff --git "a/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" "b/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" index fbd0f07a2f..cc82b04804 100644 --- "a/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" +++ "b/notes/\345\211\221\346\214\207 offer \351\242\230\350\247\243.md" @@ -587,6 +587,8 @@ public int RectCover(int n) { ## 解题思路 +### 动态规划 + ```java public int JumpFloorII(int target) { int[] dp = new int[target]; @@ -598,6 +600,34 @@ public int JumpFloorII(int target) { } ``` +### 数学式子推导 + +跳上 n-1 级台阶,可以从 n-2 级跳 1 级上去,也可以从 n-3 级跳 2 级上去...也可以从 0 级跳上去。那么 +``` +f(n-1) = f(n-2) + f(n-3) + ... + f(0) ① +``` + +同样,跳上 n 级台阶,可以从 n-1 级跳 1 级上去,也可以从 n-2 级跳 2 级上去...也可以从 0 级跳上去。那么 +``` +f(n) = f(n-1) + f(n-2) + ... + f(0) ② +``` + +②-①: +``` +f(n) - f(n-1) = f(n-1) +f(n) = 2*f(n-1) +``` + +所以 f(n) 是一个等比数列: +``` +f(n) = 2^(n-1) +``` + +```java +public int JumpFloorII(int target) { + return (int) Math.pow(2, target - 1); +} +``` # 11. 旋转数组的最小数字