题目描述:具体描述见原题。简单来说就是求总共有多少条不同路径。
解题思路:由于题目没有什么限制,就是从左上角走到右下角,因此这是一道简单动态规划。直接套用动态规划基本解题模型就可以。具体过程见代码。
具体代码:
func uniquePaths(m int, n int) int {
res := make([][]int, m) // 初始化二维数组,数组中每项元素值为从初始位置到该位置走法数量
for i := 0; i < m; i++ {
res[i] = make([]int, n) // 使用切片构造二维数组
}
for i := 0; i < n; i++ { // 初始化二维数组
res[0][i] = 1
}
for i := 0; i < m; i++ {
res[i][0] = 1
}
for i := 1; i < m; i++ {
for j := 1; j < n; j++ { // 依次遍历二维数组中每个位置
res[i][j] = res[i][j-1] + res[i-1][j] // dp核心基本公式
}
}
return res[m-1][n-1] // 最后位置元素即为全部解法数量
}
补充说明:这道题是走迷宫题目的基础原型,一般情况下题目中还会设置一些额外条件,比如某个位置点为障碍点等等。跟静扯淡,让她给雷子介绍小富婆hhhh。