当前位置: 首页 > article >正文

LeetCode讲解篇之2320. 统计放置房子的方式数

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

我们首先发现一个规律街道两侧是否放置房子是独立的,即放置房子的方式数 = 一侧放置房子的方式数 * 另一侧放置房子的方案数 = 一侧放置房子的方式数的二次方

对于一侧[0, i]范围内地块放置房子的方式数为第i号地块不放房子的方式数 + 第i号地块放房子的方式数

设一侧[0, i]范围内地块放置房子的方式数为f[i]
则f[i] = f[i - 1] + f[i - 2]
第i号地块不放房子的方式数为[0, i - 1]范围内放置房子的方式数
第i号地块放房子的方式数为[0, i - 2]范围内放置房子的方式数

题解代码

func countHousePlacements(n int) int {
    const mod = 1e9 + 7
    f := make([]int, n + 1)
    f[0], f[1] = 1, 2

    for i := 2; i <= n; i++ {
        f[i] = (f[i - 1] + f[i - 2]) % mod
    }

    return f[n] * f[n] % mod
}

题目链接

https://leetcode.cn/problems/count-number-of-ways-to-place-houses/


http://www.kler.cn/news/353883.html

相关文章:

  • 学习Redisson实现分布式锁
  • 【Linux系统编程】环境基础开发工具使用
  • ⭐ Unity Pico PXR_SDK转场淡入淡出
  • kimi帮我解决ubuntu下软链接文件夹权限不够的问题
  • 基础数据结构——用递归完成冒泡排序
  • 【大数据】HDFS DataNode节点下线
  • IOS每次查询数据时,当前滚动的位置会跑到底部?
  • wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法
  • Python脚本之获取Splunk数据发送到第三方UDP端口
  • java01作业说明:
  • 机器学习:情感分析的原理、应用场景及优缺点介绍
  • 对TCP/IP、HTTP协议原理的分析和总结
  • C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(4)
  • 雷达手势识别技术
  • C++ IO多路复用 poll模型
  • 前端学习-CSS的三大特性(十七)
  • python 爬虫 入门 一、基础工具
  • 分布式数据库环境(HBase分布式数据库)的搭建与配置
  • [算法日常] 逆序对
  • 音乐播放器项目专栏介绍​