Question 62 of 75 - LeetCode Weekly Challenge

LeetCode Challenge #790. Domino and Tromino Tiling

You have two types of tiles: a 2 x 1 domino shape and a tromino shape. You may rotate these shapes.

lc domino

Given an integer n, return the number of ways to tile an 2 x n board. Since the answer may be very large, return it modulo 109 + 7.

In a tiling, every square must be covered by a tile. Two tilings are different if and only if there are two 4-directionally adjacent cells on the board such that exactly one of the tilings has both squares occupied by a tile.

 

Example 1:

lc domino1

Input: n = 3
Output: 5
Explanation: The five different ways are show above.

Example 2:

Input: n = 1
Output: 1

 

Constraints:

  • 1 <= n <= 1000
Video Solution
C++ Solution
				
					class Solution {
public:
    int numTilings(int n) {

        int mod=1e9+7;
        vector<long long>helper;
        helper.push_back(0);
        helper.push_back(1);
        helper.push_back(2);
        helper.push_back(5);
        if(n<=3)return helper[n];

        for(int i=4; i<=n; i++)
        {
            helper.push_back(2*helper[i-1]+helper[i-3]);
            helper[i]%=mod;
        }

        return helper[n];
    }
};
				
			

Happy Coding with edSlash