国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑

這篇具有很好參考價(jià)值的文章主要介紹了【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本專欄內(nèi)容為:算法學(xué)習(xí)專欄,分為優(yōu)選算法專欄,貪心算法專欄,動態(tài)規(guī)劃專欄以及遞歸,搜索與回溯算法專欄四部分。 通過本專欄的深入學(xué)習(xí),你可以了解并掌握算法。

??博主csdn個(gè)人主頁:小小unicorn
?專欄分類:動態(tài)規(guī)劃專欄
??代碼倉庫:小小unicorn的代碼倉庫??
??????關(guān)注我?guī)銓W(xué)習(xí)編程知識

題目來源

本題來源為:

Leetcode62. 不同路徑

題目描述

一個(gè)機(jī)器人位于一個(gè) m x n 網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為 “Start” )。

機(jī)器人每次只能向下或者向右移動一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。

問總共有多少條不同的路徑?
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

題目解析

我們可以模擬一下機(jī)器人的過程:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

算法原理

1.狀態(tài)表示

經(jīng)驗(yàn)+題目要求
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

對于本題而言就是:
dp[i][j]表示:走到[i,j]位置的時(shí)候,一共有多少種方式。

2.狀態(tài)轉(zhuǎn)移方程

機(jī)器人到達(dá)[i,j]位置有兩種,一種從上面過來,一種從左邊過來。
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
根據(jù)最近的一步劃分問題:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

因此狀態(tài)方程為:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

dp[i][j]=dp[i-1][j]+dp[i][j-1]

3.初始化

初始化之前先看一下會有什么位置會發(fā)生越界訪問:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
因?yàn)闄C(jī)器人要么從上邊下來,要門從左邊下來,因此會發(fā)生越界的為第一排和第一列。

我們基本上會采取以下的初始化方式,在原二維數(shù)組的基礎(chǔ)上加一行一列。
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
加上之后要注意兩點(diǎn):
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
下標(biāo)映射注意新表與原始的下標(biāo)關(guān)系即可,而虛擬節(jié)點(diǎn)里面的值要根據(jù)情況而定:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
觀察一下,第二行從第三個(gè)開始需要它上面的和左面的兩個(gè)一起決定,而且要保證它上面的也就是虛擬節(jié)點(diǎn)不能被選上(也就是不影響結(jié)果)那么它應(yīng)該就是負(fù)無窮,但是本題的范圍:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++
所以我們賦值為0就不會被選上了。依次內(nèi)推:
【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑,算法專欄,# 動態(tài)規(guī)劃算法專欄,動態(tài)規(guī)劃,算法,c++

因?yàn)榈诙诺牡诙€(gè)位置會決定其他位置的值,因此要賦值為1;這里有兩種,可以從上面虛擬節(jié)點(diǎn)也可以從左面的虛擬節(jié)點(diǎn)進(jìn)行賦值。

4.填表順序

整體從上往下,每排從左往右。

5.返回值

根據(jù)題目要求,需要返回右下角的值,因此返回:
dp[m][n]

代碼實(shí)現(xiàn)

動態(tài)規(guī)劃的代碼基本就是固定的四步:

1.創(chuàng)建dp表
2.初始化
3.填表
4.返回值

本題完整代碼實(shí)現(xiàn):

class Solution 
{
public:
    int uniquePaths(int m, int n) 
    {
            // 1.創(chuàng)建dp表
            // 2.初始化
            // 3.填表
            // 4.返回值
            vector<vector<int>> dp(m+1,vector<int>(n+1));
            dp[0][1]=1;
            //從上往下遍歷
            for(int i=1;i<=m;i++)
            {
                //從左往右遍歷
                for(int j=1;j<=n;j++)
                {
                    dp[i][j]=dp[i-1][j]+dp[i][j-1];
                }
            }
            return dp[m][n];
    }
};

時(shí)間復(fù)雜度:O(MN)
空間復(fù)雜度:O(M
N)文章來源地址http://www.zghlxwxcb.cn/news/detail-830798.html

到了這里,關(guān)于【動態(tài)規(guī)劃專欄】專題二:路徑問題--------1.不同路徑的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 算法D39 | 動態(tài)規(guī)劃2 | 62.不同路徑 63. 不同路徑 II

    今天開始逐漸有?dp的感覺了,題目不多,就兩個(gè)?不同路徑,可以好好研究一下 62.不同路徑? 本題大家掌握動態(tài)規(guī)劃的方法就可以。?數(shù)論方法?有點(diǎn)非主流,很難想到。? 代碼隨想錄 視頻講解: 動態(tài)規(guī)劃中如何初始化很重要!| LeetCode:62.不同路徑_嗶哩嗶哩_bilibili 這個(gè)題看

    2024年04月10日
    瀏覽(23)
  • 算法訓(xùn)練Day39:62.不同路徑 63. 不同路徑 II 動態(tài)規(guī)劃

    算法訓(xùn)練Day39:62.不同路徑 63. 不同路徑 II 動態(tài)規(guī)劃

    Category Difficulty Likes Dislikes ContestSlug ProblemIndex Score algorithms Medium (67.70%) 1746 0 - - 0 Tags Companies 一個(gè)機(jī)器人位于一個(gè) m x n 網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為 “Start” )。 機(jī)器人每次只能向下或者向右移動一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。

    2023年04月25日
    瀏覽(20)
  • 動態(tài)規(guī)劃之不同路徑解決問題

    動態(tài)規(guī)劃之不同路徑解決問題

    題目鏈接選自力扣 : 不同路徑 題目不難讀懂, 就是遵循一個(gè)規(guī)則, 機(jī)器人從起點(diǎn)開始, 只允許向右或者向下行走, 不允許返回而最終到達(dá)終點(diǎn)時(shí)一共有多少種不同的路徑. 比如在一個(gè) 2 * 3 的矩陣?yán)? 從做燒焦起點(diǎn)(0,0) 到達(dá)終點(diǎn)右下角(1,2) 一共有多少種方法. 通過題目要求, 發(fā)現(xiàn)一

    2024年02月11日
    瀏覽(16)
  • 【動態(tài)規(guī)劃】路徑問題_不同路徑_C++

    【動態(tài)規(guī)劃】路徑問題_不同路徑_C++

    題目鏈接:leetcode不同路徑 目錄 題目解析: 算法原理 1.狀態(tài)表示 2.狀態(tài)轉(zhuǎn)移方程 3.初始化 4.填表順序 5.返回值 編寫代碼 題目讓我們求總共有多少條不同的路徑可到達(dá)右下角; 由題可得: 機(jī)器人位于一個(gè)? m x n ? 網(wǎng)格; 機(jī)器人每次只能向下或者向右移動一步; 我們拿示例

    2024年02月05日
    瀏覽(19)
  • 算法day39|動態(tài)規(guī)劃:不同路徑Ⅰ、Ⅱ

    https://leetcode.cn/problems/unique-paths/ 了解下標(biāo)含義——這里是行列數(shù) 理解為什么dfs不能做這道題(超時(shí)) https://leetcode.cn/problems/unique-paths-ii/ 初始化時(shí)也應(yīng)該注意限制條件 注意特殊情況的判斷

    2024年02月06日
    瀏覽(21)
  • LeetCode算法題解(動態(tài)規(guī)劃)|LeetCoed62. 不同路徑、LeetCode63. 不同路徑 II

    LeetCode算法題解(動態(tài)規(guī)劃)|LeetCoed62. 不同路徑、LeetCode63. 不同路徑 II

    題目鏈接:62. 不同路徑 題目描述: 一個(gè)機(jī)器人位于一個(gè)? m x n ? 網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為 “Start” )。 機(jī)器人每次只能向下或者向右移動一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。 問總共有多少條不同的路徑? 示例 1: 示例 2:

    2024年02月05日
    瀏覽(33)
  • 【算法|動態(tài)規(guī)劃No.6】leetcode63. 不同路徑Ⅱ

    【算法|動態(tài)規(guī)劃No.6】leetcode63. 不同路徑Ⅱ

    個(gè)人主頁:平行線也會相交 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 平行線也會相交 原創(chuàng) 收錄于專欄【手撕算法系列專欄】【LeetCode】 ??本專欄旨在提高自己算法能力的同時(shí),記錄一下自己的學(xué)習(xí)過程,希望對大家有所幫助 ??希望我們一起努力、成長,共同進(jìn)步。

    2024年02月16日
    瀏覽(20)
  • 【算法|動態(tài)規(guī)劃系列No.5】leetcode62. 不同路徑

    【算法|動態(tài)規(guī)劃系列No.5】leetcode62. 不同路徑

    個(gè)人主頁:平行線也會相交 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 平行線也會相交 原創(chuàng) 收錄于專欄【手撕算法系列專欄】【LeetCode】 ??本專欄旨在提高自己算法能力的同時(shí),記錄一下自己的學(xué)習(xí)過程,希望對大家有所幫助 ??希望我們一起努力、成長,共同進(jìn)步。

    2024年02月12日
    瀏覽(23)
  • 動態(tài)規(guī)劃解“不同路徑問題”(所有路徑、有障礙物時(shí)的所有路徑)

    動態(tài)規(guī)劃解“不同路徑問題”(所有路徑、有障礙物時(shí)的所有路徑)

    題目1:不同路徑(求到達(dá)右下角的所有路徑) 一個(gè)機(jī)器人位于一個(gè) m x n 網(wǎng)格的左上角 (起始點(diǎn)在下圖中標(biāo)記為 “Start” )。 機(jī)器人每次只能向下或者向右移動一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。 問總共有多少條不同的路徑? ? ?解題思路

    2024年02月14日
    瀏覽(17)
  • 力扣算法刷題Day39|動態(tài)規(guī)劃:不同路徑 I&II

    力扣題目:#62.不同路徑 刷題時(shí)長:參考題解后10min 解題方法:動規(guī) 復(fù)雜度分析 時(shí)間O(m*n) 空間O(m*n) 問題總結(jié) 初始化二維數(shù)組的python語法:i 對應(yīng) m,j 對應(yīng)n 二維遍歷順序,從上到下從左到右通過兩層for循環(huán)實(shí)現(xiàn),其中startindex應(yīng)為1 本題收獲 動規(guī)思路 確定dp數(shù)組及下標(biāo)的含義

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包