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

自助建站还是人工建站好美容美发培训职业学校

自助建站还是人工建站好,美容美发培训职业学校,房产网站怎么做400电话,网络推广网目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组,让我们模拟从上面第一层走到下面的最后一层,下降路径需要加上经过的格子的值,每层…

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个数组,让我们模拟从上面第一层走到下面的最后一层,下降路径需要加上经过的格子的值,每层走的格子不能和相邻层走的格子在同一列,让我们返回下降路径的最小和。

那既然是要路径的总和最小,那么我每次都只选择最小的数不就好啦。

不过相邻行的最小元素所在的列可能是会一样的,这样我们就不能直接无脑选择最小了,我们每次选择本行经过哪一格的时候,需要做个判断,只要你这格子的列跟我上一行最小数的列不一样,那么我就在你这格子的值我再加上上一层的最小值,这样就可以表示我从上面的最小格走到你这边,这格的数就是我从上面走到这个格子的下降路径和,我们这样不断累加,直到最后统计最后一行的最小值,那就是总的下降路径最小和了。

不过还有一个问题,和上一行最小值的不同列的格子我们都更新数值了,那么同列的格子我们应该怎么更新呢?我们可以记录下第二小的数,如果一个格子和上一列的最小数同列,那么它就不会和第二小的数同列,既然无法加最小的数,那么退而求其次,我加上第二小的数也凑合。

所以我们需要维护两个变量,分别来存储上一层第一小的元素和列下标以及上一层第二小的元素和列下标。

我们还需要在遍历每层的时候就更新这两个变量,作为下一层的上一层最小元素,但是这样会造成数据污染,如果我还没遍历完整层元素就把这两个变量给更新了,那么本层中后面的格子可能用的就不是上一层的最小数而是本层的最小数了。

所以我们其实一共需要四个变量,两个变量一样是存储上一层的第一小和第二小的元素和列下标。另外两个变量就用来存储本层的第一小和第二小元素和列下标。在遍历完整层之后,再将上一层的两个变量更新为本层的两个变量。

最后我们返回最后一层的最小值,那就是我们要返回的下降路径最小和了。

代码:

class Solution {
public:int minFallingPathSum(vector<vector<int>>& grid) {int n=grid.size();if(n==1) return grid[0][0];pair<int,int>min1{-1,0},min2{-1,0}; //初始化成最小次小都为0,这样在第一层操作的时候就不会有影响for(int i=0;i<n;i++){pair<int,int>min11{0,INT_MAX},min22{0,INT_MAX}; //记录本层的最小和次小,用于更新for(int j=0;j<n;j++){if(j!=min1.first) grid[i][j]+=min1.second;  //如果不是和上层最小的列一样就添加最小.else grid[i][j]+=min2.second;   //反之添加次小.if(grid[i][j]<min11.second){    //更新本层的最小min22=min11;    //最小更新以后,之前的最小就是现在的次小min11.first=j;min11.second=grid[i][j];}else if(grid[i][j]<min22.second){  //更新本层的次小min22.first=j;min22.second=grid[i][j];}}min1=min11;min2=min22;  //更新}return min1.second;}
};

http://www.dinnco.com/news/26098.html

相关文章:

  • 做网站一定需要主机吗深圳网站公司排名
  • 支付宝也做网站吗北京优化互联网公司
  • 海口模板建站哪家好站长工具中文
  • 网站建设两个方面公众号推广方案
  • 做高仿包的能做网站吗千网推软文推广平台
  • 怎么看别人网站是哪里做的在哪买网站链接
  • 计算机网络网站域名
  • 企业网站html模板下载公司排名seo
  • 导购个人网站怎么做的百度推广怎么做的
  • 个人备案的网站可以做商城b2b网站大全免费
  • 高端网站建设的市场分析什么是淘宝搜索关键词
  • 上海seo网站建设网站制作出名的公司
  • 没有网站 可以做百度口碑吗今日国家新闻
  • 深圳华强北商城网站建设品牌推广方案怎么写
  • 网站建设seo 视频教程百度问一问付费咨询
  • 做视频网站用哪个cms营销软件网站
  • 中国石家庄网站黄冈地区免费网站推广平台
  • 鞍山网站开发百度关键词优化服务
  • 廊坊cms模板建站站长工具综合查询2020
  • 网站建设设计 飞沐广州seo优化公司排名
  • javaweb做网站实现邮件网络推广公司企业
  • 微动网站建设网络营销推广方案范文
  • 如何办个网站东莞关键词优化推广
  • 金融行业网站模板重庆seo排名优化费用
  • 最新疫情防控措施站长工具seo
  • 永安网页设计郑州网站优化推广
  • 成都网站建设常见问题品牌网络营销策划书
  • ipad可以做网站吗长沙seo管理
  • 广西南宁网站建设百度云资源共享
  • 长沙网站制作哪家专业链接转二维码