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

【leetcode】62. 不同路径

题目

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

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

问总共有多少条不同的路径?
在这里插入图片描述
输入: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

提示:

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 109

代码编写

这道题目难道还算可以,我们假设i,j,且i和j的区间分别是[0,m)和[0,n)。则有f(i,j)表示向右边移动了i次和向下移动了j次,因为条件只能向右和向下所以f(i,j) = f(i-1,j) + f(i,j-1)。由题意得f(i,0)和f(0,j)都是1,所以进行计算就可以了。


class Solution {
public:
    int uniquePaths(int m, int n) {
        vector<vector<int>> ans(m,vector<int>(n));
        for(int i = 0;i < m;i++){
           ans[i][0] = 1;
        }

        for(int j = 0;j<n;j++){
           ans[0][j] = 1;
        }

         for(int i = 1;i < m;i++){
           for(int j = 1;j < n;j++){
              ans[i][j] = ans[i-1][j] + ans[i][j-1];
           }
        }

        return ans[m-1][n-1];
    }
};

http://www.kler.cn/news/147929.html

相关文章:

  • 如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问
  • Android13 launcher循环切页
  • SQLITE 日期格式转换
  • Hands-on Machine Learning with Scikit-Learn,Keras TensorFlow
  • 【Kotlin精简】第9章 Kotlin Flow
  • 算法刷题-动态规划3(未完待续---------
  • C++初阶(十二)string的模拟实现
  • openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数
  • 美创科技受邀亮相第二届全球数字贸易博览会
  • 008 OpenCV matchTemplate 模板匹配
  • 【UGUI】中Content Size Fitter)组件-使 UI 元素适应其内容的大小
  • 【嵌入式】开源shell命令行的移植和使用(2)——letter-shell
  • 贪心 376. 摆动序列
  • 顶象s_v3滑块
  • 设计师不可错过的免费素材网站,快快收藏!
  • 数据结构与算法之美代码:二分查找2
  • 分享几个可以免费使用GPT的网站
  • docker常见问题汇总
  • 建筑木模板厂家批发
  • Linux fork笔试练习题
  • C++STL——string类详解及其模拟实现
  • 【深度学习】学习率及多种选择策略
  • 前端学习网站推荐
  • c/c++ header_only 头文件实现的关键点
  • Spring加载Bean的多种方式
  • 红旗Asianux Server Linux V8 安装万里数据库(GreatSQL)
  • Spring Cloud,注册中心,配置中心,原理详解
  • 社区新零售:重塑零售业的全新模式
  • 使用Python+Redis实现文章投票网站后端功能
  • 【文献阅读笔记】关于GANomaly的异常检测方法