码迷,mamicode.com
首页 > 其他好文 > 详细

790. 多米诺和托米诺平铺

时间:2019-08-24 21:02:22      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:lin   inf   info   math   转移   ++   图片   image   temp   

技术图片

public int numTilings(int N) { // dp转移方程: dp(n) = 2 * dp(n-1) + dp(n-3), 时间复杂度O(N), 空间复杂度O(1) 
        if (N == 0) {
            return 0;
        }
        if (N == 1) {
            return 1;
        }
        if (N == 2) {
            return 2;
        }
        int mod = (int)(Math.pow(10, 9) + 7);
        int n1 = 1, n2 = 2, n3 = 5;
        for (int i = 4; i <= N; i++) {
            int temp = (2 * n3 % mod + n1) % mod; // 2*n3+n1 会超过int的最大值(2147483647, 2开头10位数), 所以要对 2*n3 进行mod(1000000007, 1开头10位数)
            n1 = n2;
            n2 = n3;
            n3 = temp;
        }
        return n3;
    }

790. 多米诺和托米诺平铺

标签:lin   inf   info   math   转移   ++   图片   image   temp   

原文地址:https://www.cnblogs.com/lasclocker/p/11405819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!