最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)LeetCode(62.不同的路徑)

 更新時(shí)間:2021年07月16日 14:46:50   作者:Grandyang  
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(62.不同的路徑),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 62. Unique Paths 不同的路徑

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).

How many possible unique paths are there?

Above is a 7 x 3 grid. How many possible unique paths are there?

Note: m and n will be at most 100.

Example 1:

Input: m = 3, n = 2
Output: 3
Explanation:
From the top-left corner, there are a total of 3 ways to reach the bottom-right corner:
1. Right -> Right -> Down
2. Right -> Down -> Right
3. Down -> Right -> Right

Example 2:

Input: m = 7, n = 3
Output: 28

這道題讓求所有不同的路徑的個(gè)數(shù),一開始還真把博主難住了,因?yàn)橹昂孟駴](méi)有遇到過(guò)這類的問(wèn)題,所以感覺(jué)好像有種無(wú)從下手的感覺(jué)。在網(wǎng)上找攻略之后才恍然大悟,原來(lái)這跟之前那道 Climbing Stairs 很類似,那道題是說(shuō)可以每次能爬一格或兩格,問(wèn)到達(dá)頂部的所有不同爬法的個(gè)數(shù)。而這道題是每次可以向下走或者向右走,求到達(dá)最右下角的所有不同走法的個(gè)數(shù)。那么跟爬梯子問(wèn)題一樣,需要用動(dòng)態(tài)規(guī)劃 Dynamic Programming 來(lái)解,可以維護(hù)一個(gè)二維數(shù)組 dp,其中 dp[i][j] 表示到當(dāng)前位置不同的走法的個(gè)數(shù),然后可以得到狀態(tài)轉(zhuǎn)移方程為:  dp[i][j] = dp[i - 1][j] + dp[i][j - 1],這里為了節(jié)省空間,使用一維數(shù)組 dp,一行一行的刷新也可以,代碼如下:

解法一:

class Solution {
public:
    int uniquePaths(int m, int n) {
        vector<int> dp(n, 1);
        for (int i = 1; i < m; ++i) {
            for (int j = 1; j < n; ++j) {
                dp[j] += dp[j - 1]; 
            }
        }
        return dp[n - 1];
    }
};

這道題其實(shí)還有另一種很數(shù)學(xué)的解法,實(shí)際相當(dāng)于機(jī)器人總共走了 m + n - 2步,其中 m - 1 步向右走,n - 1 步向下走,那么總共不同的方法個(gè)數(shù)就相當(dāng)于在步數(shù)里面 m - 1 和 n - 1 中較小的那個(gè)數(shù)的取法,實(shí)際上是一道組合數(shù)的問(wèn)題,寫出代碼如下:

解法二:

class Solution {
public:
    int uniquePaths(int m, int n) {
        double num = 1, denom = 1;
        int small = m > n ? n : m;
        for (int i = 1; i <= small - 1; ++i) {
            num *= m + n - 1 - i;
            denom *= i;
        }
        return (int)(num / denom);
    }
};

到此這篇關(guān)于C++實(shí)現(xiàn)LeetCode(62.不同的路徑)的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)不同的路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt實(shí)現(xiàn)俄羅斯方塊

    Qt實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C語(yǔ)言中volatile關(guān)鍵字的作用及說(shuō)明

    C語(yǔ)言中volatile關(guān)鍵字的作用及說(shuō)明

    文中主要介紹了C語(yǔ)言中volatile關(guān)鍵字的含義和使用場(chǎng)景,volatile是一個(gè)類型修飾符,主要用來(lái)修飾被不同線程訪問(wèn)和修改的變量,它的作用是防止編譯器對(duì)代碼進(jìn)行優(yōu)化,確保每次直接讀取原始內(nèi)存地址的值
    2024-10-10
  • QT連接SQLServer數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    QT連接SQLServer數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    要使用Qt連接SQL Server數(shù)據(jù)庫(kù),需要使用Qt提供的SQL模塊和SQL Server驅(qū)動(dòng)程序,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • C++自帶的sort函數(shù)如何對(duì)vector容器元素進(jìn)行排序

    C++自帶的sort函數(shù)如何對(duì)vector容器元素進(jìn)行排序

    這篇文章主要介紹了C++自帶的sort函數(shù)如何對(duì)vector容器元素進(jìn)行排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • C++ 17轉(zhuǎn)發(fā)一個(gè)函數(shù)調(diào)用的完美實(shí)現(xiàn)

    C++ 17轉(zhuǎn)發(fā)一個(gè)函數(shù)調(diào)用的完美實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于C++ 17如何轉(zhuǎn)發(fā)一個(gè)函數(shù)調(diào)用的完美實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++17具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • C語(yǔ)言素?cái)?shù)(質(zhì)數(shù))判斷的3種方法舉例

    C語(yǔ)言素?cái)?shù)(質(zhì)數(shù))判斷的3種方法舉例

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言素?cái)?shù)(質(zhì)數(shù))判斷的3種方法,質(zhì)數(shù)是只能被1或者自身整除的自然數(shù)(不包括1),稱為質(zhì)數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C++ this指針和空指針的具體使用

    C++ this指針和空指針的具體使用

    這篇文章主要介紹了C++ this指針和空指針的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • C語(yǔ)言入門篇--sizeof與strlen基礎(chǔ)理論

    C語(yǔ)言入門篇--sizeof與strlen基礎(chǔ)理論

    本篇文章是c語(yǔ)言基礎(chǔ)篇,主要為大家介紹了C語(yǔ)言的sizeof與strlen的基本理論知識(shí),希望可以幫助大家快速入門c語(yǔ)言的世界,更好的理解c語(yǔ)言
    2021-08-08
  • C++拷貝構(gòu)造函數(shù)中的陷阱

    C++拷貝構(gòu)造函數(shù)中的陷阱

    這篇文章主要介紹了C++拷貝構(gòu)造函數(shù)中的陷阱,拷貝構(gòu)造函數(shù)大家都比較熟悉,通俗講就是傳入一個(gè)對(duì)象,拷貝一份副本。不過(guò)看似簡(jiǎn)單的東西,實(shí)際不注意的話就會(huì)產(chǎn)生問(wèn)題,下面我們就來(lái)看看C++拷貝構(gòu)造函數(shù)中都有哪些陷阱吧
    2022-01-01
  • C\C++ 獲取當(dāng)前路徑實(shí)例詳解

    C\C++ 獲取當(dāng)前路徑實(shí)例詳解

    這篇文章主要介紹了C\C++ 獲取當(dāng)前路徑實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

都兰县| 卓尼县| 永新县| 沧州市| 阳朔县| 抚远县| 伊川县| 海丰县| 鲜城| 江川县| 华安县| 涡阳县| 定日县| 大城县| 滁州市| 姜堰市| 大洼县| 马公市| 绿春县| 南靖县| 木里| 大连市| 中超| 安溪县| 甘德县| 台中县| 独山县| 金华市| 鹤山市| 太仆寺旗| 鄂伦春自治旗| 时尚| 嵩明县| 常州市| 资阳市| 清远市| 镇安县| 陆川县| 德化县| 汕头市| 普定县|