LeetCode Paint House
原题链接在这里:https://leetcode.com/problems/paint-house/
题目:
There are a row of n houses, each house can be painted with one of the three colors: red, blue or green. The cost of painting each house with a certain color is different. You have to paint all the houses such that no two adjacent houses have the same color.
The cost of painting each house with a certain color is represented by a n x 3 cost matrix. For example, costs[0][0] is the cost of painting house 0 with color red;costs[1][2] is the cost of painting house 1 with color green, and so on... Find the minimum cost to paint all houses.
题解:
DP问题. 类似House Robber. red = 当前房子paint red cost + Math.min(之前paint blue的总花费,之前paint green的总花费). blue 和 gree 同理.
Time Complexity: O(n). Space: O(1).
AC Java:
 public class Solution {
     public int minCost(int[][] costs) {
         if(costs == null || costs.length == 0){
             return 0;
         }
         int len = costs.length;
         int red = 0; //最后print red 时的总共最小cost
         int blue = 0;
         int green = 0;
         for(int i = 0; i<len; i++){
             int preRed = red;
             int preBlue = blue;
             int preGreen = green;
             red = costs[i][0] + Math.min(preBlue, preGreen); //当前house选择red, 之前只能在blue 和 green中选
             blue = costs[i][1] + Math.min(preRed, preGreen);
             green = costs[i][2] + Math.min(preRed, preBlue);
         }
         return Math.min(red, Math.min(blue, green));
     }
 }
跟上Paint House II, Paint Fence.
LeetCode Paint House的更多相关文章
- [LeetCode] Paint Fence 粉刷篱笆
		There is a fence with n posts, each post can be painted with one of the k colors. You have to paint ... 
- [LeetCode] Paint House II 粉刷房子之二
		There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ... 
- [LeetCode] Paint House 粉刷房子
		There are a row of n houses, each house can be painted with one of the three colors: red, blue or gr ... 
- LeetCode Paint House II
		原题链接在这里:https://leetcode.com/problems/paint-house-ii/ 题目: There are a row of n houses, each house ca ... 
- LeetCode Paint Fence
		原题链接在这里:https://leetcode.com/problems/paint-fence/ 题目: There is a fence with n posts, each post can ... 
- [LeetCode] Paint House I & II
		Paint House There are a row of n houses, each house can be painted with one of the three colors: red ... 
- [LeetCode#265] Paint House II
		Problem: There are a row of n houses, each house can be painted with one of the k colors. The cost o ... 
- [LeetCode#256] Paint House
		Problem: There are a row of n houses, each house can be painted with one of the three colors: red, b ... 
- [LeetCode#276] Paint Fence
		Problem: There is a fence with n posts, each post can be painted with one of the k colors. You have ... 
随机推荐
- 使用json把php数据传给js处理
			先创建下面的两个文件,并将代码拷贝进去,然后打开json.html文件: json.html文件: <!DOCTYPE html> <html> <head> &l ... 
- hive2.1.0安装
			下载hive(http://mirrors.cnnic.cn/apache/hive/) 或者 http://archive.apache.org/dist/hive/(hive历史版本) 在本地进行 ... 
- 将UINavgationController的push改成从左到右
			CATransition* transition = [CATransition animation]; transition.type = kCATransitionPush; // ... 
- B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
			B树是为磁盘存储而专门设计的一类平衡搜索树,B树的高度仅随着它所包含的节点数按对数增长,不过因为单个节点可以包含多个关键字,所以对数的底数可以比较大,实际应用中一般是50~2000,给个直观的数字,一 ... 
- 在Windows10 64位 Anaconda4 Python3.5下安装XGBoost
			系统环境: Windows10 64bit Anaconda4 Python3.5.1 软件安装: Git for Windows MINGW 在安装的时候要改一个选择(Architecture选择x ... 
- Java 初学记录之可执行jar包
			环境 jdk7 jre7 当我用jdk7开发的时候,编写完成可执行的jar工具,并且成功使用. 当我在另一台机器安装了jre6,再次运行我的小工具jar 的时候,报错 解决: http://stack ... 
- [转]js 将图片连接转换称base64格式
			参考:http://blog.csdn.net/wyyfwm/article/details/45917255 我们把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求 ... 
- iOS ARC 下的单例模式
			#import <Foundation/Foundation.h> @interface RYSingleExample : NSObject<NSCopying> +(ins ... 
- IT干货
			最近翻看Redis相关的中文书籍时,发现了很多错误,包括翻译错误及理论错误,因此想搜集一些相关的外文书籍看看.以下几个链接,内容大同小异,均可免费下载相关的英文书籍PDF版,内容涵盖了IT的方方面面. ... 
- Go语言 数组
			介绍 Array 是值类型,Slice 和 Map 是引用类型.他们是有很大区别的,尤其是在参数传递的时候. 另外,Slice 和 Map 的变量 仅仅声明是不行的,必须还要分配空间(也就是初始化,i ... 
