LeetCode62 不同路徑
阿新 • 來源:網路 • 發佈:2021-05-23
LeetCode62 不同路徑
一個機器人位於一個m x n網格的左上角 (起始點在下圖中標記為 “Start” )。
機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為 “Finish” )。
問總共有多少條不同的路徑?

//利用mem陣列記錄從start點到達各方格的路徑數量
//遞迴查詢下、右兩個方向的路徑
func findPath(m int, n int, mem [][]int) int {
//任一方向到達終點
if m == 1 || n == 1 {
return 1
}
if mem[m][n] > 0 {
return mem[m][n]
}
mem[m][n] = findPath(m-1,n,mem) + findPath(m,n-1,mem)
return mem[m][n]
}
func uniquePaths(m int, n int) int {
//GO構建二維陣列
var mem = make([][]int, m+1)
for i:=0; i<m+1; i++ {
mem[i] = make([]int, n+1)
}
return findPath(m, n, mem)
}
