• 不同路径


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

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

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

    如:

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

    每一个i,j格的路径总数由从它左边或者上边到达,故一共是两者之和。

    使用了简单动态规划的思路: path[i][j] = path[i-1][j] + path[i][j-1]. 

    class Solution {
    public:
        int uniquePaths(int m, int n) {
            
            vector<vector<int> > paths;
            paths.resize(n);
            for(int i = 0; i < n; i++){
                paths[i].resize(m);
            }        
            for(int i = 0; i < m; i++){
                paths[0][i] = 1;            
            }
            for(int j = 0; j < n; j++){
                paths[j][0] = 1;
            }
            
            for(int i =1; i < n; i++){
                for(int j = 1; j < m; j++){
                    paths[i][j] = paths[i-1][j] + paths[i][j-1];
                }
            }
            
            return paths[n-1][m-1];
        }
    };
    The Safest Way to Get what you Want is to Try and Deserve What you Want.
  • 相关阅读:
    12_2 数据分析工具包。
    11_29
    11_28 mongoDB与scrapy框架
    11_28,selenium定位元素,cookies获取
    11_26爬虫find与findall
    day_93_11_25爬虫一requests,项目框架
    11_14flask的启动和orm,反向生成model
    11_13Local与偏函数
    11_12 路由与正则
    day83_11_1 阿里配python使用。
  • 原文地址:https://www.cnblogs.com/Shinered/p/11389343.html
Copyright © 2020-2023  润新知