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

网站开发培训怎么样互联网是指哪些工作

网站开发培训怎么样,互联网是指哪些工作,中建股份有限公司官网,免费收录网站提交前言: 小编在前几日讲述了关于动态规划的习题,下面小编继续跟着上次的步伐,继续进入多状态dp问题的讲解(但是今天这个题目不需要多状态),今天由于小编的精力有限,所以我就仅仅先讲述一个题目&am…

前言:

        小编在前几日讲述了关于动态规划的习题,下面小编继续跟着上次的步伐,继续进入多状态dp问题的讲解(但是今天这个题目不需要多状态),今天由于小编的精力有限,所以我就仅仅先讲述一个题目,等小编过几天精力恢复过来就给各位正常的每日两题的讲解。

1.粉刷房子

1.1.题目来源

        本题和前面的大多数题目一样,都是来自于力扣,下面小编给出相关的链接:LCR 091. 粉刷房子 - 力扣(LeetCode)

1.2.题目分析

        本题目虽然比较长,但是理解起来还是比较容易的,首先我们面前有n个房子,每个房子都需要被粉刷,此时给予了我们三个颜料进行选择,分别是红色,蓝色,绿色。此时我们有一个规定:相邻的房子是不可以被粉刷同一个颜色的,并且每一个房子粉刷的漆的价格都是不一样的,现在给定我们一排房子,让我们去选择哪一个房子应该选择哪一个颜料,从而使得我们粉刷完所有的房子以后,其成本花费的最少,其实细看,这个题目就类似我们之前讲述的打家劫舍问题,只不过和之前不同的是,这个题目让我们提供的选择有三种,所以按理来说我们需要使用到三个dp表来实现,只不过本题目巧妙的用一个二维的数组来帮助我们解决开辟太多dp表的问题,如果想要知道如何用二维数组代替三个dp表,且听我下面的思路分析娓娓道来。

1.3.思路讲解

        此时我们不难看出·,我们需要用到三个dp表实现这个题目,只不过dp表过多会导致代码写起来复杂程度上升,所以为了解决这个问题,我们可以用一个二维dp表来代替一维dp表,其中dp表的每一行表示每一个房子,其中的每一列代表的是对应的颜料,本题已经说明了每一列代表的颜料是啥了:0代表红色,1代表蓝色,2代表绿色。此时我们根据所设置好的dp表,就可以根据动态规划的五步走来实现本题目的思路分析。

1.状态表示

        此时我们把设置好的表叫做dp表,其中行表示每一个房子,列表示选取的颜料,此时的dp[i] [j]到达i位置的时候,涂上j色颜料,由于本题目颜料有限,小编就把这几种状态直接列出来了。

dp[i][0];  //到达i位置的时候,涂上红色,此时最少的花费成本。
dp[i][1];  //到达i位置的时候,涂上蓝色,此时最少的花费成本。
dp[i][2];  //到达i位置的时候,涂上绿色,此时最少的花费成本。
2.状态转换方程

        此时我们根据上面的思路讲解以及状态表示,就可以轻易的求取此时的状态转换方程,此时我们如果在i位置选取了红色颜料,那么它的前一个房子仅仅可以选取绿色或者蓝色(其中最小的);同样的,如果我们选取了蓝色颜料,那么它的前一个房子仅仅可以选择红色,绿色(其中最小的);如果我们选取了绿色颜料,那么它的前一个房子仅仅可以选取红色,蓝色(其中最小的),根据此,我们就可以分别列出三个状态转换方程。

dp[i][0] = cost[i][0] + min(dp[i - 1][1],dp[i - 1][2]);
dp[i][1] = cost[i][1] + min(dp[i - 1][0],dp[i - 1][2]);
dp[i][2] = cost[i][2] + min(dp[i - 1][1],dp[i - 1][0]);
3.初始化

        此时初始化问题依然是我们需要关注的细节问题,此时我们可以知道当我们选取第一行元素的时候,就会出现越界的情况,所以针对于这种情况,小编的建议就是通过创建虚拟结点,即多创建一行来抵消越界的问题,此时我们让新创立的一行为0即可,只要它不印象结果,那么多创立一行也是无妨的。

4.填表顺序

        从上到下,从左到右。

5.返回值

        返回表中最后一行的三列中最小的那一个即可。

1.4.代码讲解

        此时我们需要先设置好一个dp表,此时要比题目提供的数组的行数多一个。

int m = costs.size(),n = costs[0].size();
vector<vector<int>> f(m + 1,vector<int>(n,0));

        之后我们根据状态转换方程进行填表即可。此时一定要注意下标的映射问题,此时我们比之前要多出一行,所以当我们使用数组元素的时候,我们需要让相应行减一。

for(int i = 1 ; i <= m ; i++){f[i][0] = min(f[i - 1][1],f[i - 1][2]) + costs[i - 1][0];f[i][1] = min(f[i - 1][0],f[i - 1][2]) + costs[i - 1][1];f[i][2] = min(f[i - 1][1],f[i - 1][0]) + costs[i - 1][2];}

        此时我们返回最后一行最小的一个元素即可。

return min(min(f[m][0],f[m][1]),f[m][2]);

1.5.完整代码

class Solution {
public:int minCost(vector<vector<int>>& costs) {int m = costs.size(),n = costs[0].size();vector<vector<int>> f(m + 1,vector<int>(n,0));for(int i = 1 ; i <= m ; i++){f[i][0] = min(f[i - 1][1],f[i - 1][2]) + costs[i - 1][0];f[i][1] = min(f[i - 1][0],f[i - 1][2]) + costs[i - 1][1];f[i][2] = min(f[i - 1][1],f[i - 1][0]) + costs[i - 1][2];}return min(min(f[m][0],f[m][1]),f[m][2]);}
};

2.总结

        本文到这里也就结束了,可能很多读者朋友觉着小编今天写的题目比较少,这里小编再次统一解释一下原因:小编最近在期末周,所以精力有限,虽然在我写这篇文章的时候,我已经到了期末周的尾声了,但是由于小编“一不小心”有点太放纵,导致我现在的精力有点差,所以特意写出来这一篇文章来让脑子变的有活力。一起写题的时光总是很短暂的,那么各位大佬们,我们下一篇文章见啦!


文章转载自:

http://Vk7tHoNo.snLxb.cn
http://AouTlflY.snLxb.cn
http://VMVBjS72.snLxb.cn
http://9oshsEj0.snLxb.cn
http://Y4E8IVzs.snLxb.cn
http://cR2i9dPQ.snLxb.cn
http://nGnILwZn.snLxb.cn
http://Nichd4D4.snLxb.cn
http://yh2O6Mvq.snLxb.cn
http://AowNkfts.snLxb.cn
http://EMBwLQcA.snLxb.cn
http://0umoCrDS.snLxb.cn
http://4u4bXKYu.snLxb.cn
http://bPhqKq6X.snLxb.cn
http://glTaK01q.snLxb.cn
http://kNwczi4O.snLxb.cn
http://cASNLIyl.snLxb.cn
http://Ppb0c0k8.snLxb.cn
http://MexR5PHc.snLxb.cn
http://bXYh4yem.snLxb.cn
http://XSEt3y9A.snLxb.cn
http://FfLKy6GX.snLxb.cn
http://H4k6hQOn.snLxb.cn
http://kaAA93Va.snLxb.cn
http://CNK1Bxhz.snLxb.cn
http://TEBTB5OO.snLxb.cn
http://He3JD9vw.snLxb.cn
http://q8Y1V7eG.snLxb.cn
http://zvTcR1sU.snLxb.cn
http://qsKhH0pJ.snLxb.cn
http://www.dtcms.com/wzjs/611122.html

相关文章:

  • 怎样免费做自己的网站合肥网站建设工作室
  • 电商网站建设策划书模板管理咨询顾问
  • 淄博网站建设设计专业h5网站制作
  • app网站开发长沙游戏推广话术
  • 网站域名空间怎么提交搬家公司电话号码
  • 哪些行业需要做网站网络平台推广宣传方案
  • ps做游戏网站徐州建设网站公司
  • 电子机箱网站建设报告有网站源码怎么搭建网站
  • 上海阀门网站建设网页设计有什么证书
  • 上海网站建设 缔客网站建设设计时代创信好
  • 网站营销平台谷歌seo网站推广怎么做优化
  • wordpress不显示网站标题企业邮箱怎么看
  • 企业做网站价钱万网网站多少
  • 济宁网站建设价格吉林市做网站的公司
  • 响应式网站 分辨率北京网站建设是什么意思
  • 企业网站设计服务公司wordpress购买后可见
  • 深圳网站建设专业乐云seo图片在线制作网站
  • 翡翠原石网站首页怎么做红包网站开发
  • 360网站建设官网工程信息造价
  • 怎样建设自己网站网页设计培训 周末双休
  • 网站反向链接wordpress字体图标
  • 亚马逊电商平台郑州seo优化公司
  • 深圳做微信网站多少钱edge打开是2345网址导航
  • 做网站许昌做猎头顾问 经常看哪些网站
  • 网站编辑难做吗一个电子商务网站的用户购买行为监测报告文档格式怎么做?
  • 网站建设需求列表淮南查查网
  • 做外贸必备网站酒店管理专业建设规划
  • 济南做外贸的网站公司如何去掉wordpress作者链接
  • 做京东一样的网站网站建设维护什么意思
  • 网站有些什么内容wordpress自定义进入后台地址