1. 程式人生 > 其它 >#力扣 LeetCode面試題 08.01. 三步問題 @FDDLC

#力扣 LeetCode面試題 08.01. 三步問題 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/three-steps-problem-lcci/

Java程式碼:

class Solution { //f(1)=1,f(2)=2,f(3)=4,f(4)=
    public int waysToStep(int n) { //n範圍在[1, 1000000]之間
        int[] a={7,1,2,4};
        for(int i=5;i<=n;i++)a[i%4]=((a[(i+1)%4]+a[(i+2)%4])%1000000007+a[(i+3)%4])%1000000007;
        return a[n%4]; //注意:要取模!!!
    }
}

使用long型別:

class Solution { //f(1)=1,f(2)=2,f(3)=4,f(4)=
    public int waysToStep(int n) { //n範圍在[1, 1000000]之間
        long[] a={7,1,2,4};
        for(int i=5;i<=n;i++)a[i%4]=(a[(i+1)%4]+a[(i+2)%4]+a[(i+3)%4])%1000000007;
        return (int)a[n%4]; //注意:要取模!!!
    }
}