博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Paint House II
阅读量:6874 次
发布时间:2019-06-26

本文共 1526 字,大约阅读时间需要 5 分钟。

There are a row of n houses, each house can be painted with one of the k colors. 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 k cost matrix. For example, costs0 is the cost of painting house 0 with color 0; costs1 is the cost of painting house 1 with color 2, and so on... Find the minimum cost to paint all houses.

Note: All costs are positive integers.

Follow up: Could you solve it in O(nk) runtime?

 

public class Solution {    public int minCostII(int[][] costs) {        if(costs != null && costs.length == 0) return 0;        int prevMin = 0, prevSec = 0, prevIdx = -1;        for(int i = 0; i < costs.length; i++){            int currMin = Integer.MAX_VALUE, currSec = Integer.MAX_VALUE, currIdx = -1;            for(int j = 0; j < costs[0].length; j++){                costs[i][j] = costs[i][j] + (prevIdx == j ? prevSec : prevMin);                // 找出最小和次小的,最小的要记录下标,方便下一轮判断                if(costs[i][j] < currMin){                    currSec = currMin;                    currMin = costs[i][j];                    currIdx = j;                } else if (costs[i][j] < currSec){                    currSec = costs[i][j];                }            }            prevMin = currMin;            prevSec = currSec;            prevIdx = currIdx;        }        return prevMin;    }}

 

转载于:https://www.cnblogs.com/jxr041100/p/8435104.html

你可能感兴趣的文章
ORACLE之sql语句优化
查看>>
一台机器同时启动多个tomcat
查看>>
Java中的多线程
查看>>
Zookeeper不适合注册中心的原因
查看>>
内核是什么
查看>>
标签的语义
查看>>
Freemarker入门例子
查看>>
利用busybox工具制作微型linux系统二
查看>>
商业无小事,现实生活不在童话故事里
查看>>
Unsupported major.minor version 51.0解决办法
查看>>
我的友情链接
查看>>
新手如何入门
查看>>
15.2-全栈Java笔记:ActionEvent事件类型可以实现哪些功能?
查看>>
apache-tomcat-6.0.X如何配置管理界面Administration Tool
查看>>
Ibatis实例程序
查看>>
Linux下Nagios的安装与配置
查看>>
esxi5手动打补丁升级
查看>>
spring core 笔记(一)
查看>>
一例mysql主从数据库,从库宕机后无法启动的解决方案
查看>>
WebView 设置软键盘弹出将屏幕上移
查看>>