91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang刷leetcode動態規劃之如何解決不同路徑問題

發布時間:2021-12-16 09:24:16 來源:億速云 閱讀:141 作者:小新 欄目:大數據

小編給大家分享一下golang刷leetcode動態規劃之如何解決不同路徑問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

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

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

現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑?

網格中的障礙物和空位置分別用 1 和 0 來表示。

說明:m 和 n 的值均不超過 100。

示例 1:

輸入:[  [0,0,0],  [0,1,0],  [0,0,0]]輸出: 2解釋:3x3 網格的正中間有一個障礙物。從左上角到右下角一共有 2 條不同的路徑:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右

解題思路
1,這是一個典型的動態規劃題

2,子問題拆分:由于每個點只能從左往右或者從上往下

        遞推公式為m[i][j]=m[i-1][j]+m[i][j-1],由于用到了i-1,j-1所以i,j均遞增

 3,如果有路障

m[i][j]=0

4,邊界問題

如果左上角為1則m[0][0]=0,否則為1

5,最上水平的位置只能從左往右,最左垂直位置只能從上往下

故 m[i][0]=m[i-1][0],m[0][j]=m[0][j-1]

如果有路障 m[i][0]=0,m[0][j]=0

func uniquePathsWithObstacles(obstacleGrid [][]int) int {    if len(obstacleGrid)==0{        return 0    }        m:=make([][]int,len(obstacleGrid))    for i:=0;i<len(obstacleGrid);i++{        m[i]=make([]int,len(obstacleGrid[0]))    }    if obstacleGrid[0][0]==1{        return 0    }    m[0][0]=1    for i:=1;i<len(obstacleGrid);i++{     if obstacleGrid[i][0]==1{       m[i][0]=0     }else{        m[i][0]=m[i-1][0]     }    }    for j:=1;j<len(obstacleGrid[0]);j++{      if obstacleGrid[0][j]==1{          m[0][j]=0       }else{          m[0][j]=m[0][j-1]        }     }    for i:=1;i<len(obstacleGrid);i++{        for j:=1;j<len(obstacleGrid[0]);j++{            if obstacleGrid[i][j]==1{                    m[i][j]=0                }else{                    m[i][j]=m[i-1][j]+m[i][j-1]                }        }    }    return m[len(obstacleGrid)-1][len(obstacleGrid[0])-1]}

看完了這篇文章,相信你對“golang刷leetcode動態規劃之如何解決不同路徑問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜宾县| 全椒县| 宜良县| 宾阳县| 定兴县| 天柱县| 日照市| 古丈县| 河池市| 汝城县| 南川市| 平阴县| 镇原县| 广河县| 贵定县| 巍山| 兴国县| 巩留县| 宁安市| 从江县| 五大连池市| 汶川县| 博湖县| 河东区| 青冈县| 左权县| 阿拉善左旗| 西畴县| 永善县| 乐陵市| 宝山区| 霍城县| 神木县| 通山县| 永嘉县| 垣曲县| 雷山县| 呼和浩特市| 手游| 独山县| 游戏|