LeetCode 2320.统计放置房子的方式数

题目

一条街道上共有 n * 2地块 ,街道的两侧各有 n 个地块。每一边的地块都按从 1n 编号。每个地块上都可以放置一所房子。

现要求街道同一侧不能存在两所房子相邻的情况,请你计算并返回放置房屋的方式数目。由于答案可能很大,需要对 10^9 + 7 取余后再返回。

注意,如果一所房子放置在这条街某一侧上的第 i 个地块,不影响在另一侧的第 i 个地块放置房子。

思路

代码

java 复制代码
class Solution {
    public static final int Mod = (int) 1e9 + 7, len = (int) 1e4 + 1; 
    public static final int[] f = new int[len]; 

    public int countHousePlacements(int n) {
        f[0] = 1;
        f[1] = 2;
        for (int i = 2; i < len; i++) {
            f[i] = (f[i - 1] + f[i - 2]) % Mod; 
        }
        return (int) ((long) f[n] * f[n] % Mod);
    }
}

性能

时间复杂度o(n)

空间复杂度o(n)

相关推荐
im_AMBER几秒前
Leetcode 139 最后一个单词的长度 | 找出字符串中第一个匹配项的下标
开发语言·算法·leetcode
Frostnova丶2 分钟前
(6)LeetCode.42 接雨水
数据结构·算法·leetcode
像污秽一样3 分钟前
算法设计与分析-习题4.4
数据结构·算法·排序算法·深度优先
重庆小透明4 分钟前
【面试问题第一篇】快手后端java一面
java·面试·职场和发展
x_xbx6 分钟前
LeetCode:102. 二叉树的层序遍历
算法·leetcode
2401_889884669 分钟前
嵌入式C++测试框架
开发语言·c++·算法
月明长歌18 分钟前
【码道初阶-Hot100】LeetCode 128. 最长连续序列:从排序双指针扫描到 HashSet,一文讲透为什么 O(n) 解法要用哈希
算法·leetcode·哈希算法
Z9fish23 分钟前
C语言算法专题总结(一)排序
c语言·算法·排序算法
美式请加冰31 分钟前
模拟的介绍和使用
java·开发语言·算法
云泽80836 分钟前
蓝桥杯算法精讲:贪心算法之区间问题深度剖析
算法·贪心算法·蓝桥杯