1. 程式人生 > 其它 >第一講 sql語句是如何執行的?

第一講 sql語句是如何執行的?

劍指 Offer 10- II. 青蛙跳臺階問題

難度簡單

一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。求該青蛙跳上一個n級的臺階總共有多少種跳法。

答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。

示例 1:

輸入:n = 2
輸出:2

示例 2:

輸入:n = 7
輸出:21

示例 3:

輸入:n = 0
輸出:1

提示:

  • 0 <= n <= 100

遞迴肯定過不了吧,不寫了。

法一:基本dp

class Solution {
public:
    int numWays(int n) {
        int f[101] = {0};
        f[
0] = 1; f[1] = 1; f[2] = 2; for(int i=3; i<=n; i++){ f[i] = (f[i-1]+f[i-2])%(int)(1e9+7); } return f[n]; } };

法二: 滾動陣列優化

class Solution {
public:
    int numWays(int n) {
        int first = 1, second = 1;
        for(int i=2; i<=n; i++){
            
int tmp = second; second = (first+second)%(int)(1e9+7); first = tmp; } return second; } };