參考爬梯子問題 這道題是斐波那契數列數列相關: dp[0] = 1,dp[1]=1,dp[2]=2 dp[n] = dp[n-1]+dp[n-2];
我們可以對空間進行進一步優化,我們只用兩個整型變量a和b來存儲過程值,首先將a+b的值賦給b,然后a賦值為原來的b,所以應該賦值為b-a即可。這樣就模擬了上面累加的過程,而不用存儲所有的值,參見代碼如下
class Solution {public: int climbStairs(int n) { int a = 1, b = 1; while (n--) { b += a; a = b - a; } return a; }};新聞熱點
疑難解答