From 57ce770fe9ffeb0ecc1275d73eaacdb9a428eb5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= Date: Mon, 4 Feb 2019 19:45:03 +0800 Subject: [PATCH] Update 62. Unique Paths.md --- solutions/62. Unique Paths.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/solutions/62. Unique Paths.md b/solutions/62. Unique Paths.md index 49b8a13..21fe7c7 100644 --- a/solutions/62. Unique Paths.md +++ b/solutions/62. Unique Paths.md @@ -6,6 +6,9 @@ 则根据题意可知`dp[1][1] = 1`、`dp[i][j] += (dp[i - 1][j] + dp[i][j - 1])`。最终的返回结果就是dp[m][n]。 时间复杂度O(mn),空间复杂度O(mn) +## 思路一空间改进版 +思路一的空间还有改进空间,因为每次计算dp[i][j]时只用到了`dp[i - 1][j]`和`dp[i][j - 1]`,所以我们没必要开那么大一个二维数组 + ## 思路二 这题就是之前高中做过的一个数学题。考虑mxn的网格,机器人要想到达目的地必须一共向下走m-1步、向右走n-1步,顺序不限。 所以这题转换成一个排列组合题: 有两种球分别m-1、n-1个,将这些球排成一排,一共有多少种排法?很明显答案是(m+n-2)!/[(m-1)!(n-1)!]种(即先进行全排列再消序)。