<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)63:不同路徑 II

          共 1541字,需瀏覽 4分鐘

           ·

          2020-10-14 04:11

          算法的重要性,我就不多說(shuō)了吧,想去大廠,就必須要經(jīng)過(guò)基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問(wèn)題叫做?不同路徑II,我們先來(lái)看題面:

          https://leetcode-cn.com/problems/unique-paths-ii/

          A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).


          The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).


          Now consider if some obstacles are added to the grids. How many unique paths would there be?

          題意


          一個(gè)機(jī)器人位于一個(gè) m x n 網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為“Start” )。
          機(jī)器人每次只能向下或者向右移動(dòng)一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為“Finish”)。
          現(xiàn)在考慮網(wǎng)格中有障礙物。那么從左上角到右下角將會(huì)有多少條不同的路徑?
          網(wǎng)格中的障礙物和空位置分別用 1 和 0 來(lái)表示。
          說(shuō)明:m 和 n 的值均不超過(guò) 100。


          樣例


          示例?1:

          輸入:
          [
          ? [0,0,0
          ],
          ? [0,1,0],
          ? [0,0,0]
          ]
          輸出: 2

          解釋:
          3x3 網(wǎng)格的正中間有一個(gè)障礙物。
          從左上角到右下角一共有 2?條不同的路徑:
          1.?向右 -> 向右 -> 向下 -> 向下
          2.?向下 -> 向下 -> 向右 -> 向右



          解題


          動(dòng)態(tài)規(guī)劃

          我們要計(jì)算到達(dá)右下角的位置的路徑數(shù)就是:走到m行、n列共有多少種走法。

          利用動(dòng)態(tài)規(guī)劃的思想:走到m行、n列共有多少種走法用dp[m][n]表示
          要到達(dá)每個(gè)位置,只能從上面來(lái)或者從左邊來(lái):dp[m-1][n]、dp[m][n-1]

          要求有多少種走法就是求,到達(dá)dp[m-1][n]走法+到達(dá)dp[m][n-1]走法。即:dp[m][n]=dp[m-1][n]+dp[m][n-1]

          障礙:
          當(dāng)遇到障礙點(diǎn)表示:到達(dá)這個(gè)位置的走法為0
          即:dp[m][n]=0

          注意:當(dāng)障礙物的位置在右下角和開始位置時(shí),是沒(méi)有可達(dá)路徑的。


          class?Solution?{
          ?????
          ????public?int?uniquePathsWithObstacles(int[][] obstacleGrid)?{
          ?????
          ????????int?m=obstacleGrid.length;
          ????????int?n=obstacleGrid[0].length;
          ????????if(obstacleGrid[0][0]==1?|| obstacleGrid[m-1][n-1]==1){
          ?????
          ????????????return?0;
          ????????}
          ????????int?dp[][] = new?int[m + 1][n + 1];
          ????????dp[0][1]=1;
          ????????for(int?i=1;i<=m;i++){
          ?????
          ????????????for(int?j=1;j<=n;j++){
          ?????
          ???????????????if?(obstacleGrid[i - 1][j - 1] == 0)
          ????????????????????dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
          ????????????}
          ????????}
          ????????return?dp[m][n];
          ????}
          }


          好了,今天的文章就到這里,如果覺得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力。


          上期推文:


          LeetCode1-50題匯總,速度收藏!
          LeetCode40-60題匯總,速度收藏!
          LeetCode刷題實(shí)戰(zhàn)61:旋轉(zhuǎn)鏈表
          LeetCode刷題實(shí)戰(zhàn)62:不同路徑


          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性猛交99久久久久99按摩 | 暴操逼| 东京热一区二区 | 青草视频在线观看视频 | 一级黄色电影免费在线 |