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

微信网站开发哪家好个人简历电子版可编辑

微信网站开发哪家好,个人简历电子版可编辑,美食网站建设内容规划,怎么使用服务器做网站一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 看见题目…

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

看见题目我们首先用动态规划四步曲进行分析。

dp数组应该怎么看?我们回想一下爬楼梯,其实本题和他也没什么区别,唯一不同的我们这个是二维的,既然要记录总共的路径那么我们就定义一个二维数组,每一个记录到该点要走多少步,和爬楼梯一样,他是只能走一步或者两步,我们是只能向下或者向右,所以我们每一点的值就等于他上面的和左边的和,毕竟他们俩是不重复的,加起来就是能到该点的所有的路径。

所以得到递推公式: dp[i][j] = dp[i-1][j]+dp[i][j-1];

那么我们怎么初始化呢,首先我们看一下递推公式,需要-1,那就意味着我们的第一行和第一列都是要初始化的,所以我们直接把他们赋值成1就可以了。

我们直接上代码

class Solution {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;i++){for(int j = 1;j<n;j++){dp[i][j] = dp[i-1][j]+dp[i][j-1];}}return dp[m-1][n-1];}
}  

给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。

网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。

返回机器人能够到达右下角的不同路径数量。

测试用例保证答案小于等于 2 * 109

示例 1:

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右

这一题是上一题的变种,我们的路上有障碍了,我们如何规避这个障碍呢 ,首先就是在路程中把障碍物都变成让他没办法走,一开始我就只加了这一个逻辑,但是运行起来发现不对,后来我思考了一下发现还有问题,因为我们的初始化也有问题,如果第一排就有障碍,后面的都是0啊都得不到值,所以把这俩逻辑加进来这个问题就解决啦

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;if (obstacleGrid[0][0] == 1) {return 0;}// 初始化 dp 数组int[][] dp = new int[m][n];dp[0][0] = 1; // 起点路径数为 1for (int j = 1; j < n; j++) {if (obstacleGrid[0][j] == 1) {break; // 遇到障碍物,后续路径都为 0}dp[0][j] = 1;}// 初始化第一列for (int i = 1; i < m; i++) {if (obstacleGrid[i][0] == 1) {break; // 遇到障碍物,后续路径都为 0}dp[i][0] = 1;}for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {if (obstacleGrid[i][j] == 1) {dp[i][j] = 0; // 当前格子有障碍物,路径数为 0} else {dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; // 状态转移}}}return dp[m - 1][n - 1];}
}

http://www.yayakq.cn/news/223317/

相关文章:

  • 铁哥们网站建设ASP个人网站的建设
  • 网站做微信小程序湘潭网站建设磐石网络上班时间
  • 五合一网站建设方案阿里云做网站选什么主机
  • 外国人做的关于中国的视频网站无锡网站建设价格低
  • 网站建设推广新闻泰州网站建设搭建
  • 做洗衣液的企业网站网站上传空间下一步
  • 深圳工厂网站建设公司seo和竞价排名的区别
  • 网站开发 提成建设网站中存在的问题
  • 做自适应网站做网络推广的方法
  • 如何做网站的充值功能济南轻电商网站建设公司
  • 百度网站建设北京找钢网网站建设
  • 网络公司网站源码新手想写小说怎么做网站
  • 邵阳建设银行网站是多少wordpress in排序
  • 搜索引擎推广案例岳阳seo公司
  • 怎样做机械租赁的网站朝阳区互联网公司
  • 二七郑州网站建设行业网站开发公司
  • wordpress搭建站点建设网上银行个人网上银行登录
  • 建筑方案设计流程seo北京网站推广
  • 洛阳市做网站的建设网站火车票预订
  • 成都网站建设福州网站开发常用颜色
  • 站长之家域名公司里面php开发一个网站的流程
  • 怎么做单位网站抚顺市网站建设
  • 南山区网站建设公司cms+wordpress+国内
  • 网站vps无法登陆网站开发 软件
  • 怎么给网站做域名重定向福田公司投诉电话
  • 球场 技术支持 东莞网站建设聊城网站推广的公司
  • 珠海正规网站制作哪家强网站运营存在的问题
  • 效果图案例网站删除wordpress版权
  • 辽宁省建设工程信息网官网新网站入口北京开发小程序
  • 织梦网站修改使用网站策划书的内涵