276. Paint Fence
There is a fence with n posts, each post can be painted with one of the k colors.
You have to paint all the posts such that no more than two adjacent fence posts have the same color.
Return the total number of ways you can paint the fence.
Note:
n and k are non-negative integers.
此题用动态规划来解题,遇到动态规划题目时候,先找状态方程,假设要求第i个post的颜色种类,那么需要知道什么呢,条件是不能有超过两个相邻的fence的颜色相同的,那么就要分两种情况考虑了,第一种是如果前两个颜色不同,那么后面的颜色就是前面的颜色种类*k,还有一种就是如果前面两个颜色相同,后面的颜色就是(k-1)种了,代码如下:
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
public class Solution {
public int numWays(int n, int k) {
if(n==0) return 0;
else if(n==1) return k;
int same = k;
int different =k*(k-1);
for(int i=2;i<n;i++){
int temp = different;
different =(different+same)*(k-1);
same = temp;
}
return different+same;
}
}
- [LeetCode276]Paint Fence
- Leetcode 276 Paint Fence
- 【编程】【leetcode】276 Paint Fence
- [leetcode 276] Paint Fence
- Code Forces 276 B. Little Girl and Game 贪心
- Codeforces 484(#276 Div 1) A Bits 乱搞
- Codeforces Round #276 (Div. 1) D. Kindergarten dp
- [LintCode] Paint Fence 粉刷篱笆
- 276. Paint Fence
- 【276】◀▶ Python 字符串函数说明
- SGU276-Andrew's Troubles
- Codeforces 484(#276 Div 1) B Maximum Value 筛法
- 易經大意原稿(頁單位) 276-300
- 【Codeforces Round 276 (Div 2)A】【暴力】Factory 数增余数直到余数为0
- Paint Fence
- 276. Paint Fence
- BAT机器学习面试题及解析(276-280题)
- 276-比较字母大小
- Codeforces 276 Div2
- NYOJ276 比较字母大小