From 661e814e69a548fe18561be7ca36d52b537d1691 Mon Sep 17 00:00:00 2001 From: chayan das Date: Mon, 5 May 2025 15:55:46 +0530 Subject: [PATCH] Create 790. Domino and Tromino Tiling --- 790. Domino and Tromino Tiling | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 790. Domino and Tromino Tiling diff --git a/790. Domino and Tromino Tiling b/790. Domino and Tromino Tiling new file mode 100644 index 0000000..26e16e1 --- /dev/null +++ b/790. Domino and Tromino Tiling @@ -0,0 +1,24 @@ +class Solution { +public: + const int MOD = 1e9 + 7; + int numTilings(int n) { + if (n == 0) return 1; + if (n == 1) return 1; + if (n == 2) return 2; + + vector dp(n+1), prefix(n+1); + dp[0] = 1; + dp[1] = 1; + dp[2] = 2; + prefix[0] = 1; + prefix[1] = 2; + prefix[2] = 4; + + for (int i = 3; i <= n; ++i) { + dp[i] = (dp[i-1] + dp[i-2] + 2 * prefix[i-3]) % MOD; + prefix[i] = (prefix[i-1] + dp[i]) % MOD; + } + + return dp[n]; + } +};