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

h5网站还有哪些你有网站 我做房东 只收佣金的网站

h5网站还有哪些,你有网站 我做房东 只收佣金的网站,标识标牌网站怎么做,聊城做网站推广公司Leetcode - 62:不同路径 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” &#…

Leetcode - 62:不同路径

题目:

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

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

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

示例 1:

输入:m = 3, n = 7
输出:28

示例 2:

输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
1. 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右
3. 向下 -> 向右 -> 向下

示例 3:

输入:m = 7, n = 3
输出:28

示例 4:

输入:m = 3, n = 3
输出:6

笔记:

dp[i][j]的含义:到达二维图的(i,j)点的路径条数。

初始化:求的是到达重点的路径条数,所以我们到达(0,0)点的路径数量为1;

状态转移方程:dp[i][j] = dp[i - 1][j] + dp[i][j - 1]因为只能向下或者向右走。

遍历顺序:就从小到大即可

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m, vector<int>(n, 0));dp[0][0] = 1;for(int i = 0; i < m; i++){dp[i][0] = 1;}for(int i = 0; i < n; i++){dp[0][i] = 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];}
};

Leetcode - 63:不同路径

题目:

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

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

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

网格中的障碍物和空位置分别用 1 和 0 来表示。

示例 1:

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

示例 2:

输入:obstacleGrid = [[0,1],[0,0]]
输出:1

笔记:

加了点障碍我们就对其进行特殊处理,但不要忘记我们每次只能向右下方走,不会拐弯抹角的走。

dp[i][j]的含义:就是到达(i, j)点的路径数量;

初始化:我们需要对[i][0]和[0][i]这两条边进行初始化。遇到障碍物就直接break因为不可能有路径到后面的路了。

状态转移方程:dp[i][j] = dp[i - 1][j] + dp[i][j - 1]但这里我们需要注意的是遇到障碍物我们要continue,肯定不能用break啊,因为我们又不知一种走的方法,也不想最外围那两条边只要路被堵了后面就坑定过不去了。

遍历顺序:从小到大;

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m, vector<int>(n, 0));for(int i = 0; i < m; i++){if(obstacleGrid[i][0] == 1){dp[i][0] = 0;break;}dp[i][0] = 1;}for(int i = 0; i < n; i++){if(obstacleGrid[0][i] == 1){dp[0][i] = 0;break;}dp[0][i] = 1;}for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(obstacleGrid[i][j] == 1){continue;}if(obstacleGrid[i][j] == 0){dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}}return dp[m - 1][n - 1];}
};

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

相关文章:

  • 企业电子商务网站建设规划报告建造师注册信息查询网
  • 品牌网站建设找哪家品划做网站
  • 一个门户网站怎么做网页设置背景颜色代码
  • 商业机构的网站是什么制作网站的后台
  • 上海专业网站建设机构网站建设设计流程图
  • 网站互动化自己如何做微信小程序
  • 怎么做外贸网站的邮箱签名网站服务器试用
  • 兰州市做网站建设的公司wordpress 应用模板下载
  • 做的网站图片显示一半python语言程序设计基础
  • 自己做发卡网站支付接口百度搜索下载app
  • 大庆做网站的重庆九龙快报
  • 网站建设先进个人事迹江门seo网站
  • 大型平台网站开发培训课程ui设计
  • 南昌网站建设公司特色有哪些做数据比较好的网站
  • 潍坊定制网站搭建网贷网站建设
  • 高端网站设计简介wordpress 超商取货
  • 网站首页有哪些内容微网站开发 课程标准
  • 有网站源码去哪里做学视频剪辑大概需要多少钱
  • 怎么导入网站源码盗版电影网站建设成本
  • 网站制作尺寸云速网站建设
  • 邯郸市建设局网站2017摄影网课
  • 网站建设项目说明书模板免费建设网站的画出
  • 推广自己的网站管家通库存管理软件
  • 苏州现代建设公司网站云南文山属于哪个市
  • 怎么做公司网站文案在阿里巴巴做网站多少钱2019
  • 郑州中小企业网站制作菏泽建设局网站
  • 医院网站icp备案吗东莞企业网站教程
  • 怎么看一个网站是不是仿站邢台市是几线城市
  • 汕头seo优化公司网站网络推广优化哪家好
  • 百度怎么不收录我的网站wordpress下载主题后怎么用