有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色。

你需要给所有栅栏柱上色,并且保证其中相邻的栅栏柱 最多连续两个 颜色相同。然后,返回所有有效涂色的方案数。

注意:
n 和 k 均为非负的整数。

示例:

输入: n = 3,k = 2
输出: 6
解析: 用 c1 表示颜色 1,c2 表示颜色 2,所有可能的涂色方案有:

柱 1    柱 2   柱 3     
 -----      -----  -----  -----       
   1         c1     c1     c2 
   2         c1     c2     c1 
   3         c1     c2     c2 
   4         c2     c1     c1  
   5         c2     c1     c2
   6         c2     c2     c1

思路:动态规划。

n=1,k钟

n=2,k*k种。

n>2:

n可以和n-1位置颜色相同,这时这两个位置可选项有k-1种颜色可用,再乘n-2位置方案总数。

n可以和n-1位置颜色不同,这时这个位置有k-1种颜色可用,再乘n-1位置的方案总数。

class Solution {public int numWays(int n, int k) {if(n==0)return 0;if(n==1)return k;int[] arr=new int[n];arr[0]=k;arr[1]=k*k;for(int i=2;i<n;i++){arr[i]=(arr[i-1]+arr[i-2])*(k-1);}return arr[n-1];}
}

leetcode276. 栅栏涂色相关推荐

  1. LeetCode-276. 栅栏涂色

    有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色. 你需要给所有栅栏柱上色,并且保证其中相邻的栅栏柱 最多连续两个 颜色相同.然后,返回所有有效涂色的方案数. ...

  2. Leetcode 276.栅栏涂色

    Time: 20190904 Type: Easy 考察:动态规划 题目描述 有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色. 你需要给所有栅栏柱上色,并且保 ...

  3. ​LeetCode刷题实战276:栅栏涂色

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  4. LeetCode 276. 栅栏涂色(DP)

    文章目录 1. 题目 2. 解题 2.1 DP超时解 2.2 DP解 1. 题目 有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色. 你需要给所有栅栏柱上色,并 ...

  5. LeetCode 276:栅栏涂色

    题目: 思路:动态规划 状态:即栅栏的索引位置和 是否与上一个同色, 两种状态: dp定义:dp[i][0] 指 第 i 个栅栏与第 i-1个栅栏同色的颜色可能性,dp[i][1]指第 i 个栅栏与上 ...

  6. OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)

    目录 一.读取图像与新建图像 1.读取图像 2.新建图像 二.显示图像 1.过程 2.代码 3.运行效果 三.操作图像像素 1.逐RGB涂色(单循环)(快) 1-1.过程 2-2.代码 2-3.运行结 ...

  7. bzoj 2375: 疯狂的涂色

    2375: 疯狂的涂色 Time Limit: 5 Sec  Memory Limit: 128 MB Description 小t非常喜爱画画,但是他还是一个初学者.他最近费尽千辛万苦才拜到已仙逝的 ...

  8. [CQOI2007]涂色PAINT

    题意: 给你目标字符串的状态,现可以将连续一段字符串染色,求最小的染色次数 题解: 我们定义dp[i][j]是区间i到区间j最小的涂色次数 区间dp的核心思想实际上是由一个个小区间进行合并成为大区间, ...

  9. 【BZOJ4817】【SDOI2017】树点涂色 [LCT][线段树]

    树点涂色 Time Limit: 10 Sec  Memory Limit: 128 MB [Submit][Status][Discuss] Description Bob有一棵n个点的有根树,其中 ...

最新文章

  1. 工业4.0时代,SAP助力打造智能化工厂研讨会圆满落幕
  2. 分布式事务最终一致性常用方案
  3. 游戏《蔚蓝山》教我的编程道理
  4. xml文档的「?xml version=“1.0“ encoding=“UTF-8“?」 的作用?
  5. IIS支持下载.config后缀名的文件
  6. 花30万买鸿蒙汽车,值吗?
  7. Linux内核:VFIO Mediated Device(vfio-mdev)内核文档(翻译)
  8. oracle 不查加锁的记录,查询记录时给oracle记录加锁
  9. 识别连笔字的软件_司捷分件著录软件下载-司捷分件著录软件最新版下载[文件分件]...
  10. 售前技能——寻找客户
  11. python输出两个元素空格隔开_python实现将一串字符每两个一组,中间用空格隔开...
  12. 自动化测试面试题及答案大全(5)
  13. 企业购置新车,各项费用会计入账以及案例分析
  14. 感冒了,很难受,但.....
  15. Vue.js is detected on this page. Devtools inspection is not available becaus...的解决方法
  16. 这次终于理解了PCA主成分分析(附代码)
  17. 抖音怎么上热门网红 火山小视频md5修改器
  18. 《从优秀到卓越》 《麦肯锡方法》读后感
  19. 曙光服务器I840-G25带外管理
  20. 家居装修平台「好好住」宣布完成 B 轮融资 家居行业闭环初现

热门文章

  1. 对代理商的评价怎么写_简历中的自我评价怎么写才能更吸引人?
  2. Asterisk AGI脚本
  3. java判断ftp创建目录是否成功_Java判断Ftp服务器目录是否存在,若不存在创建目录 ....
  4. c#读蓝牙数据_CSharp--BlueTooth 实现蓝牙通讯的程序 C#开发 可以发送和接收数据 方便二次开发 - 下载 - 搜珍网...
  5. 【转】继承过程中 父类子类的 字段方法 内存分配 (非java语言)
  6. 【转】人工智能-1.2.2 神经网络是如何进行预测的
  7. 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)
  8. UWP开发入门教程备忘
  9. mysql密码安全级别_Mysql数据库的安全性问题释疑
  10. python seaborn 热图 值对应颜色_基于行值的seaborn热图配色方案