From cc0c8782d9a519292f8e3658135f298d3e71be7e Mon Sep 17 00:00:00 2001 From: zhicheng lee <904688436@qq.com> Date: Tue, 6 Sep 2022 20:27:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=200070.=E7=88=AC=E6=A5=BC?= =?UTF-8?q?=E6=A2=AF.md=20Java=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 三种Java代码中有两种是相同的方法,合并相同方法的内容 --- problems/0070.爬楼梯.md | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/problems/0070.爬楼梯.md b/problems/0070.爬楼梯.md index 30c3642f..0a6acf7f 100644 --- a/problems/0070.爬楼梯.md +++ b/problems/0070.爬楼梯.md @@ -213,22 +213,6 @@ public: ### Java -```Java -class Solution { - public int climbStairs(int n) { - // 跟斐波那契数列一样 - if(n <= 2) return n; - int a = 1, b = 2, sum = 0; - - for(int i = 3; i <= n; i++){ - sum = a + b; - a = b; - b = sum; - } - return b; - } -} -``` ```java // 常规方式 @@ -241,15 +225,22 @@ public int climbStairs(int n) { } return dp[n]; } +``` + +```Java // 用变量记录代替数组 -public int climbStairs(int n) { - int a = 0, b = 1, c = 0; // 默认需要1次 - for (int i = 1; i <= n; i++) { - c = a + b; // f(i - 1) + f(n - 2) - a = b; // 记录上一轮的值 - b = c; // 向后步进1个数 +class Solution { + public int climbStairs(int n) { + if(n <= 2) return n; + int a = 1, b = 2, sum = 0; + + for(int i = 3; i <= n; i++){ + sum = a + b; // f(i - 1) + f(i - 2) + a = b; // 记录f(i - 1),即下一轮的f(i - 2) + b = sum; // 记录f(i),即下一轮的f(i - 1) + } + return b; } - return c; } ```