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

a做爰视频免费网站wordpress公众号导航主题

a做爰视频免费网站,wordpress公众号导航主题,重庆网站建设找珊瑚云,旅游网站信息门户建设方案LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子#xff0c;共n个#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然#xff0c;因为市…LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子共n个每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然因为市场上不同颜色油漆的价格不同所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个n x 3的正整数矩阵costs来表示的。例如costs[0][0]表示第0号房子粉刷成红色的成本花费costs[1][2]表示第1号房子粉刷成绿色的花费以此类推。请计算出粉刷完所有房子最少的花费成本。 输入costs [[17,2,17],[16,16,5],[14,3,19]]输出10解释将0号房子粉刷成蓝色1号房子粉刷成绿色2号房子粉刷成蓝色。最少花费2 5 3 10。输入costs [[7,6,2]]输出2 提示costs.length ncosts[i].length 31 n 1001 costs[i][j] 20。 我们用动态规划的思想来解决这个问题。 确定状态表示根据经验和题目要求我们用dp[i]表示粉刷完i位置的房子后此时的最少花费。这可以细分为 用dp[i][0]表示将i位置的房子粉刷成红色之后的最少花费。用dp[i][1]表示将i位置的房子粉刷成蓝色之后的最少花费。用dp[i][2]表示将i位置的房子粉刷成绿色之后的最少花费。 简单来说在dp[i][j]中i表示最后一个粉刷的房子的编号j表示最后一个粉刷的房子中粉刷的颜色的编号dp[i][j]表示此时的最少花费。 推导状态转移方程我们考虑最近的一步即粉刷完i - 1位置的房子之后的情况。 考虑dp[i][0]。把i位置的房子粉刷成红色所以只能把i - 1位置的房子粉刷成蓝色或者绿色。那么把i位置的房子粉刷成红色之后的最少花费就应该是把i - 1位置的房子粉刷成蓝色或者绿色之后的最少花费两种情况的较小值再加上把i位置粉刷成红色的花费。即dp[i][0] min(dp[i - 1][1], dp[i - 1][2]) costs[i][0]。同理dp[i][1]  min(dp[i - 1][0], dp[i - 1][2]) costs[i][1]dp[i][2]  min(dp[i - 1][0], dp[i - 1][1]) costs[i][2]。 综上所述dp[i][0] min(dp[i - 1][1], dp[i - 1][2]) costs[i][0]dp[i][1]  min(dp[i - 1][0], dp[i - 1][2]) costs[i][1]dp[i][2]  min(dp[i - 1][0], dp[i - 1][1]) costs[i][2]。 初始化根据状态转移方程在计算dp[0][j]其中j的范围是[0, 2]时会发生越界访问所以要进行相应的初始化。 dp[0][0]表示把0位置的房子粉刷成红色后此时的最少花费显然dp[0][0] costs[0][0]。同理dp[0][1] costs[0][1]dp[0][2] costs[0][2]。 综上所述dp[0][0] costs[0][0]dp[0][1] costs[0][1]dp[0][2] costs[0][2]。 当然我们可以在最前面添加一个辅助结点dp[0][j] 0其中j的范围是[0, 2]。这样根据状态转移方程以dp[i][0]为例此时min(dp[0][1], dp[0][2]) 0辅助结点的值不影响结果符合预期。 填表顺序根据状态转移方程对于dp[i][j]只依赖于dp[i - 1][j]j的范围是[0, 2]。那么我们只需要沿着i增大的方向填表。 返回值由于不确定把最后一个房子粉刷成什么颜色根据状态表示最终应返回把最后一个房子粉刷成红色、蓝色或者绿色这3种情况中最少花费的最小值即dp[n][j]的最小值其中j的范围是[0, 2]。 细节问题由于新增了一个辅助结点此时dp表的规模就不是n x 3而是(n 1) x 3。同时需注意下标的映射关系dp[i][j]对应的是costs[i - 1][j]。 时间复杂度O(N)空间复杂度O(N)。 class Solution { public:int minCost(vectorvectorint costs) {int n costs.size();// 创建dp表vectorvectorint dp(n 1, vectorint(3));// 填表for (int i 1; i n; i) {dp[i][0] min(dp[i - 1][1], dp[i - 1][2]) costs[i - 1][0];dp[i][1] min(dp[i - 1][0], dp[i - 1][2]) costs[i - 1][1];dp[i][2] min(dp[i - 1][0], dp[i - 1][1]) costs[i - 1][2];}// 返回结果return min(dp[n][0], min(dp[n][1], dp[n][2]));} };
http://www.dnsts.com.cn/news/264865.html

相关文章:

  • 审计实务网站建设论文做网站应该了解什么
  • 安阳信息网官网优化seo系统
  • 快速搭建网站框架的工具十堰网站推广哪家专业
  • 滕州网站建设制作wordpress整合ueditor
  • 佛山营销网站建设多少钱网站设计模板 英文翻译
  • 环保网站建设公司邓州网站优化
  • 绍兴网站设计沈阳建设工程信息网中项网
  • 成都装修网站制作建站软件排行榜
  • 潍坊网站建设工作五大门户网站分别是
  • 我想建立一个网站厦门公司注册费用
  • 中联建设集团网站常州建设银行新北分行网站
  • 网站建设服务公司企业营销网站策划
  • 手机网站建设进度上海优化网站seo公司
  • 广州网站建设专业乐云seo宁波 做网站
  • 网站建设人员叫什么科目花生壳域名还免费吗
  • 解释微信微网站网站正在建设 h5模板
  • 自己做网站需要什么技术做网站需要什么服务器
  • 微软手机做网站服务器吗wordpress搬家插件路径出错
  • 公司营销型网站制作wordpress post结构
  • 宁波住房建设网站中国核工业第二二建设有限公司招聘
  • linux下网站搭建html网页源码
  • 建筑网站设计模版注册一个公司需要什么条件
  • 如何做网站的教程视频网站功能开发费用多少钱
  • 建设网站查询余额移动互联网开发学什么专业
  • 有口碑的宁波网站建设建管家企业网站
  • 个人网站备案网址导航正规外贸流程
  • 国际网站群建设方案现在出入郑州最新规定
  • 台州seo网站推广费用有什么网站是做投资的
  • 网站内容建设规划wordpress 个人资料按钮
  • 如何提高网站索引量哪些网站可以做简历