美文网首页
62. 不同路径

62. 不同路径

作者: 名字是乱打的 | 来源:发表于2021-07-27 02:07 被阅读0次

1.递归(超时)

第一眼想到递归回溯,因为只有两种路径,向下或者向右,但是大网格的时候超出时间限制,因为其包含了大量的压栈出栈重复计算,代码

class Solution {
        int res = 0;

        public int uniquePaths(int m, int n) {
            //x,y 0 0 xmac m ymax x
            getCount(0, 0, m, n);
            return res;
        }

        private void getCount(int x, int y, int m, int n) {
            if (x >= m || y >= n) {
                return;
            }

            if (x == m - 1 || y == n - 1) {
                res++;
                return;
            }

            //向右
            if (x < m - 1) {
                x++;
                getCount(x, y, m, n);
                x--;
            }


            //向下
            if (y < n - 1) {
                y++;
                getCount(x, y, m, n);
                y--;
            }

        }
    }

2.动态规划

如图所示一个7*3的网格

思路:

  • 每个点的结果由其上一个结点的可能的路径决定
  • 上边界只会是起点一直向右走到达的,因此路径只有1种
  • 左边界只会是起点一直向下走达到的,因此路径也只有1种
  • 其他情况右其上方结点或者左侧结点决定
class Solution {
        int res = 0;

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

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

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

相关文章

  • 每日一题20201123(62. 不同路径)

    62. 不同路径[https://leetcode-cn.com/problems/unique-paths/] 思路

  • 62.不同路径

    ···/* 假设把向下表示为A,向右表示为B,则问题可以视为m-1个A元素和n-1个B元素的排列总和,因此使用计算...

  • 62.不同的路径

    题目 机器人位于一个m*n网络的左上角,在(0,0)位置start,机器人每次只能向下或者向右移动一步。机器人视图...

  • 62.不同路径

    题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或...

  • 62. 不同路径

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

  • 62. 不同路径

    题目描述 https://leetcode-cn.com/problems/unique-paths/ 思路 我看...

  • 62. 不同路径

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

  • 62. 不同路径

  • 62. 不同路径

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

  • 62. 不同路径

网友评论

      本文标题:62. 不同路径

      本文链接:https://www.haomeiwen.com/subject/xikgmltx.html