日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode题解

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目是這樣的: 一個機器人位于一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問總共有多少條不同的路徑?

例如:

輸入: m = 3, n = 2
輸出: 3
解釋:
從左上角開始,總共有 3 條路徑可以到達右下角。
1. 向右 -> 向右 -> 向下
2. 向右 -> 向下 -> 向右
3. 向下 -> 向右 -> 向右 輸入: m = 7, n = 3
輸出: 28 這道題其實跟那個踩階梯的題很相似:“假如有10步臺階,一次可走一步或兩步,那么要走到達臺階頂,有幾種走法,我們都知道,這個是斐波那契問題,遞歸就可以了”。 我們可以這么解,假設最后一格是a[m][n],那么能到達a[m][n]的只有a[m-1][n]和a[m][n-1]。同理,要到達a[m-1][n],也只能從a[m-1-1][n]和a[m-1][n-1]; 要到達a[m][n-1],也只能從a[m-1][n-1]和a[m][n-1-1],這是個遞歸問題。直到a[i][j]中i=1或者j=1,當i=1時,就只可以能時從a[i][j-1]到達,當j=1時,同樣,也只能從a[i-1][j]到達; 于是,遞歸的邊界找到了。 可能上面說的不直觀,請看下面:
``` r(m,3)的值?????? r(m,4)的值?? r(m,4)-r(m-1,4)的差值
r(1,3)=1???????? r(1,4)=1???????? 3 r(2,3)=3???????? r(2,4)=4???????? 6? r(3,3)=6???????? r(3,4)=10?????? 10 r(4,3)=10??????? r(4,4)=20?????? 15?? r(5,3)=15??????? r(5,4)=35?????? 21?? r(6,3)=21??????? r(6,4)=56?????? 28?? r(7,3)=28??????? r(7,4)=84?????? 36?? r(8,3)=36??????? r(8,4)=120????? 45?? r(9,3)=45??????? r(9,4)=165
有沒有發現 r(9,4)=r(8,4)+45=r(8,4)+r(9,3)=r(7,4)+r(8,3)+r(8,3)+r(9,2) r(8,4)=r(7,4)+36=r(7,4)+r(8,3)=r(6,4)+r(7,3)+r(7,3)+r(8,2) . . . . . ``` 于是我們很快想到了遞歸函數怎么寫: ``` public int uniquePaths2(int m, int n) { if (m == 1) { return 1; } if (n == 1) { return 1; } return uniquePaths2(m - 1, n) + uniquePaths2(m, n - 1); } ```
運行一下:

?


結果對了,現在把參數值變大一點:

?


時間還湊合,再變大,這次運行時間有點久了:

?


超過了兩分鐘! 為什么呢,請看上面的發現那里:在我們計算r(9,4)的時候是不是中間會計算兩次r(8,3),并且r(8,4)和r(9,4)中間都會有r(7,4)的計算,而這些重復計算是很浪費時間的。對這塊不了解的可以看這篇文章:https://mp.weixin.qq.com/s/llvtdxaPc29CNkcmtPHxKw 于是,為了避免重復計算,這個函數需要改寫,我們可以這樣,在計算r(8,3)的時候把r(8,3)的值保存起來,這樣下次計算r(8,3)的值的時候可以直接獲取,不需要再計算了,根據這個思路,把算法改良一下: ``` public int uniquePaths3(int m, int n) { int[][] all = new int[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0 || j == 0) { all[i][j] = 1; } else { all[i][j] = all[i - 1][j] + all[i][j - 1]; } } } return all[m - 1][n - 1]; } ```
再看看運行結果:

?


快了好多是不是!

轉載于:https://www.cnblogs.com/aibaofeng/p/11098525.html

總結

以上是生活随笔為你收集整理的LeetCode题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久中文 | 一本久久综合亚洲鲁鲁五月天 | 在线观看欧美国产 | 第色 | 精品久久久久久久久久久aⅴ | 亚洲欧美国产另类 | 高跟鞋av| 国产调教 | 色香蕉网站 | av卡一卡二 | 久久大综合 | 欧美一级黄色大片 | 91视频 - 88av | www.中文字幕在线观看 | 久久国产精品视频 | 丰满护士巨好爽好大乳 | 91麻豆产精品久久久久久夏晴子 | 888奇米影视 | www.99av| 免费在线观看av网站 | 国产黄色一级网站 | 去毛片| 一区二区三区中文视频 | 精品自拍视频在线观看 | 中文字幕一区二区三区门四区五区 | 青青伊人影院 | 热热热热色 | www.国产麻豆 | 成年人午夜网站 | 男女交性视频播放 | 国产亚洲欧美在线 | 91色漫| 国产小视频在线看 | 久草视频免费 | 亚洲一级黄色大片 | 三上悠亚一区二区三区 | 美女午夜激情 | 神马三级我不卡 | 看片网址国产福利av中文字幕 | bbbbbxxxxx性欧美| 男人插女人下面视频 | 日韩黄色视屏 | 国产第100页 | 69福利区| 88久久精品无码一区二区毛片 | 国产肉体ⅹxxx137大胆 | 国产三级国产精品 | 欧美无人区码suv | 亚洲精品高清视频在线观看 | 综合国产精品 | 日本高清视频www夜色资源 | 人人干人人草 | 天天爱天天干天天操 | 伊人久久综合 | 久久国产精品一区二区三区 | 国产原创在线播放 | 97精品一区二区视频在线观看 | 已满十八岁免费观看全集动漫 | 第一福利视频 | 国产成人精品一区二区三区 | 欧美日韩免费观看一区=区三区 | 国产,日韩,欧美 | 欧美一区二区激情 | 亚洲人女屁股眼交6 | 污污视频在线观看网站 | 91久久精品视频 | 欧美在线精品一区二区三区 | 国产亚洲av片在线观看18女人 | 少妇人妻丰满做爰xxx | 国产精品久久久久高潮 | 日本韩国毛片 | 欧美精品一区二区在线播放 | 自由 日本语 热 亚洲人 | bt天堂新版中文在线地址 | 欧美性受xxxx黑人xyx | 黄色国产精品 | 精品午夜视频 | 国产人妖在线观看 | 激情在线网站 | 欧美性猛交一区二区三区精品 | 91极品蜜桃臀 | 欧美日韩黄色 | 奇米精品一区二区三区在线观看一 | 美女黄站 | www.av网址| 自拍偷在线精品自拍偷无码专区 | 久久精品免费在线观看 | 亚洲爆乳无码精品aaa片蜜桃 | 中文字幕一区二区精品 | 小泽玛利亚在线 | aaaaaav| 久久天天东北熟女毛茸茸 | 九七伦理电影 | 亚洲激情视频网站 | jizz自拍| 三级爱爱| 第一毛片 | 黄色日韩网站 | 噜噜狠狠狠狠综合久久 |