成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇搞定動態規劃之不同路徑

開發 前端
一個機器人位于一個 m x n 網格的左上角 (起始點在下圖中標記為 “Start” )。機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為 “Finish” )。

[[426767]]

本文轉載自微信公眾號「我好困啊」,作者我好困啊。轉載本文請聯系我好困啊公眾號。

題目說明

一個機器人位于一個 m x n 網格的左上角 (起始點在下圖中標記為 “Start” )。

機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為 “Finish” )。

問總共有多少條不同的路徑?

圖片來源leetcode

示例1:

  1. 輸入:m = 3, n = 7 
  2. 輸出:28 

示例2:

  1. 輸入:m = 3, n = 2 
  2. 輸出:3 
  3. 解釋: 
  4. 從左上角開始,總共有 3 條路徑可以到達右下角。 
  5. 1. 向右 -> 向下 -> 向下 
  6. 2. 向下 -> 向下 -> 向右 
  7. 3. 向下 -> 向右 -> 向下 

提示:

  • 1 <= m, n <= 100
  • 題目數據保證答案小于等于 2 * 109

解題思路

利用動態規劃算法

1.定義狀態f[i][j]為到達(i,j)位置的路徑條數

2.f[0][0] = 1,那么最終m*n的表格,到達右下角的路徑條數即為f[m-1][n-1]中的值

3.每次移動情況,如果當前位置:

向下:f[i][j] = f[i-1][j]

向右: f[i][j] = f[i][j-1]

向下,向右:f[i][j] = f[i-1][j]+f[i][j-1]

如果你還不理解的話,觀看一下流轉圖:

以2*2的網格為例

說明,從f[0][0]出發,那么開始時,節點f[0][0]=1,

節點f[0][1]只能由于f[0][0]向右移動得到,即 f[0][1]=f[0][0]

節點f[1][0]同理,只能f[0][0]下移得到。即 f[1][0]=f[0][0]

節點f[1][1],可以由于f[0][1]向下移動,f[1][0]向右移動。兩種移動方式得到。即:f[1][1] = f[0][1] + f[1][0]

最后,f[m-1][n-1],右下角的位置即為最終結果

如果你還不理解的話,建議你手動畫一下2*3的表格移動狀態的轉移過程。

代碼實現

  1.  1func uniquePaths(m int, n intint { 
  2.  2    f := make([][]int,m) 
  3.  3    for i:= range f{ 
  4.  4        f[i] = make([]int,n) 
  5.  5    } 
  6.  6    f[0][0] = 1 
  7.  7    for i:=0;i<m;i++ { 
  8.  8        for j:=0;j<n;j++ { 
  9.  9            if i>0 && j>0 { //可以向下,向右移動 
  10. 10                f[i][j] = f[i-1][j] + f[i][j-1] 
  11. 11            }else if i>0 { //可以向下移動 
  12. 12                f[i][j] = f[i-1][j] 
  13. 13            }else if j>0 { //可以向右移動 
  14. 14                f[i][j] = f[i][j-1] 
  15. 15            } 
  16. 16        } 
  17. 17    } 
  18. 18    //循環結束后,走到了終點 
  19. 19    return f[m-1][n-1] 
  20. 20} 

復雜度分析

  • 時間復雜度:O(m*n)
  • 空間復雜度: O(m*n)

 

責任編輯:武曉燕 來源: 我好困啊
相關推薦

2022-01-04 11:31:15

不同路徑DP

2021-09-06 06:31:40

理解動態規劃

2020-03-20 08:30:56

手機移動端適配

2021-01-13 08:40:04

Go語言文件操作

2019-07-22 08:35:32

Java垃圾回收

2022-10-21 08:29:50

監控CMDB架構

2021-02-20 10:06:14

語言文件操作

2020-02-28 11:29:00

ElasticSear概念類比

2020-08-11 09:06:42

監控系統選型

2018-12-18 11:20:28

前端模塊化JavaScript

2021-05-15 10:16:14

Python匿名函數

2022-05-28 15:59:55

PythonPandas數據可視化

2024-04-17 13:21:02

Python匿名函數

2020-03-31 08:37:31

遞歸單鏈表反轉

2021-11-17 10:11:08

PythonLogging模塊

2022-03-30 10:51:40

JavaScript性能調優

2022-03-01 13:55:27

TektonKubernetes集群

2021-08-27 07:47:06

SQL靜態程序

2019-02-26 15:22:14

MySQL命令數據庫

2021-03-06 10:05:03

Python函數變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色一级免费 | 久久精品视频网站 | 欧美一区二区三区免费在线观看 | 综合久久国产 | 三区四区在线观看 | 国产小视频在线 | 中文字幕精品一区二区三区精品 | 视频一区中文字幕 | 国产欧美一区二区精品久导航 | 欧美一区二区在线观看 | 欧美专区在线 | 欧美一区中文字幕 | 夫妻午夜影院 | 成人免费在线观看 | 黄色大片在线免费观看 | 成人免费视屏 | 91麻豆精品国产91久久久久久 | 国产黄色大片 | 亚洲黄色av | 极品在线| 一区二区三区免费 | 黄视频国产 | 久久久久国产一区二区三区四区 | 欧美成人精品一区二区男人看 | 成人免费视频网站在线看 | 免费午夜视频 | 欧美a在线看 | 亚洲精品视频三区 | 成人免费小视频 | 久久精品欧美一区二区三区不卡 | 精品一二区 | 亚洲欧美成人影院 | 亚洲协和影视 | 99精品一区二区三区 | 国产一级特黄真人毛片 | 黄色91在线 | 日韩欧美国产一区二区 | 在线看一区二区三区 | 国产激情在线 | 欧美成人一级 | 91精品久久久久久久久 |