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

学校网站建设招标文件无锡网站建设套餐

学校网站建设招标文件,无锡网站建设套餐,wordpress 模板选择器,网站建设文化市场仅为个人记录复盘学习历程,解题思路来自代码随想录 代码随想录刷题笔记总结网址: 代码随想录 746. 使用最小花费爬楼梯 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬…

仅为个人记录复盘学习历程,解题思路来自代码随想录

代码随想录刷题笔记总结网址:
代码随想录

746. 使用最小花费爬楼梯

数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。

关键思路:

动规五部曲:

1.确定动规数组和下标含义

dp[i]表示到达第i台阶花费的最少体力。

2.确定递推关系

dp[i]=dp[i-1]+cost[i-1];

dp[i]=dp[i-2]+cost[i-2];

所以递推关系为:dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]).

3.dp数组如何初始化

根据题意:

dp[0]=0;

dp[1]=0;

4.确认遍历顺序

dp[i]依赖dp[i-1]/dp[i-2]从前向后遍历cost数组即可。

5.举例推导

略。

代码大致如下:

    public int minCostClimbingStairs(int[] cost) {int[] res=new int[cost.length+1];res[0]=0;res[1]=0;for(int i=2;i<=cost.length;i++){res[i]=Math.min(res[i-1]+cost[i-1],res[i-2]+cost[i-2]);}return res[cost.length];}

62.不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。计算总共有多少条不同的路径?

关键思路:

1.确定动规数组和下标含义

dp[i][j] 表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。

2.确定递推关系

根据题意机器人只能向下或向右走:dp[i][j] =dp[i-1]dp[j]+dp[i][j-1].

3.dp数组如何初始化

机器人一直向下走,dp[i][0]一定都是1,只能竖着走;dp[0][j]也一样,只能横着走.

初始化为:

for(int i=0;i<m;i++)dp[i][0]=1;

for(int j=0;j<n;j++)dp[0][j]=1.

4.确定遍历顺序

dp[i][j]依赖于dp[i-1][j]和dp[i][j-1],所以从左到右,从上往下遍历。

5.举例推导

略。

代码大致如下:

    public int uniquePaths(int m, int n) {int[][]dp=new int[m][n];for(int i=0;i<m;i++)dp[i][0]=1;for(int j=0;j<n;j++)dp[0][j]=1;for(int i=1;i<=m-1;i++){for(int j=1;j<=n-1;j++){dp[i][j]=dp[i-1][j]+dp[i][j-1];}}return dp[m-1][n-1];}

63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。考虑网格中有障碍物。计算从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。

1.确定动规数组和下标含义

dp[i][j] 表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。

2.确定递推关系

当目前位置没有障碍物时进行推导,

if(dp[i][j]==0)dp[i][j] =dp[i-1]dp[j]+dp[i][j-1],

这样当障碍物的下一格计算时,比如障碍物的右边进行计算,则dp[i][j-1]=0,满足要求。

3.dp数组如何初始化

for(int i=0;i<m;i++)dp[i][0]=1;

for(int j=0;j<n;j++)dp[0][j]=1.

再遍历整个障碍物数组,遇到一的位置将dp数组对应位置置0.

4.确定遍历顺序

从左往右,从上往下遍历。

5.举例推导

略。

代码大致如下:

    public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m=obstacleGrid.length;int n=obstacleGrid[0].length; if(obstacleGrid[0][0]==1||obstacleGrid[m-1][n-1]==1)return 0; int[][] dp=new int[m][n];for(int i=0;i<m&&obstacleGrid[i][0]==0;i++) dp[i][0]=1;for(int j=0;j<n&&obstacleGrid[0][j]==0;j++)dp[0][j]=1;for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(obstacleGrid[i][j]==1)dp[i][j]=0;}}for(int i=1;i<m;i++){for(int j=1;j<n;j++){if(obstacleGrid[i][j]==0)dp[i][j]=dp[i-1][j]+dp[i][j-1];}}return dp[m-1][n-1];}

http://www.dtcms.com/wzjs/786815.html

相关文章:

  • 郑州企业建设网站服务蓝色经典通用网站模板
  • 消防中队网站建设哪个网站上门做护肤
  • 百度官网认证网站昆明网络推广哪家好
  • 阿里云服务器做电影网站吗怎样装修公司网站
  • 李沧网站建设谁家好南京做企业网站的公司
  • 网站建设与 宣传关系山东手机版建站系统信息
  • 买网站服务器要多少钱一年邮箱购买
  • 网站工程师简历新闻热点事件
  • 怎样购买起名软件自己做网站湖南网站备案
  • 南京网站维护网站 head关键字 密度 多少字
  • 海口网站运营托管费用海口网站建设公司排名
  • 做网站虚拟主机价格北京网站建设问问q778925409霸屏
  • 织梦网站数据下载免费微信小程序制作软件
  • 支付网站建设个人网站做什么好
  • 深圳网站建设制作营销html网页设计环保网站
  • 网站后台管理系统很慢佛山低价网站建设
  • 如何在网站添加代码网络设计是做什么的
  • 公示专家的定义上海哪家seo好
  • 淘宝客云建站网址网站开发有哪些风险
  • 永州网站建设效果wordpress+帖子置顶
  • 转移网站如何转数据库做网站前端后台
  • 网站建设分组任务windows做的ppt下载网站
  • 网站建设概括织梦动漫网站模板
  • 网站容易出现的问题wordpress 统计流量
  • 网站本地环境搭建软件怎么做网站埋点
  • 莆田建站培训php做购物网站的弊端
  • 专业企业网站建设定制西安网站建设设计的好公司排名
  • 做网站ie缓存深圳市南山区住房和建设局
  • 黑龙江网站建设公司深圳大型互联网公司有哪些
  • 网站建设后端技术本人已履行网站备案信息