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

【算法與數(shù)據(jù)結(jié)構(gòu)】63、LeetCode不同路徑 II

這篇具有很好參考價(jià)值的文章主要介紹了【算法與數(shù)據(jù)結(jié)構(gòu)】63、LeetCode不同路徑 II。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。

一、題目

【算法與數(shù)據(jù)結(jié)構(gòu)】63、LeetCode不同路徑 II,算法,算法

二、解法

??思路分析:參考【算法與數(shù)據(jù)結(jié)構(gòu)】62、LeetCode不同路徑的題目,可以發(fā)現(xiàn)本題僅僅是多了障礙物。我們還是用動(dòng)態(tài)規(guī)劃來做。有障礙物的地方無法到達(dá),因此路徑數(shù)量為0,只需要將障礙物位置的dp數(shù)組記為0,除此之外障礙物后面的位置有可能無法到達(dá)(程序當(dāng)中的兩個(gè)if break語句)。
??程序如下

class Solution {
public:
	int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
		int row = obstacleGrid.size(), col = obstacleGrid[0].size();
		vector<vector<int>> dp(row, vector<int>(col, 0));
		for (int i = 0; i < col; i++) {
			if (obstacleGrid[0][i] == 1) break;
			dp[0][i] = 1;
		}
		for (int j = 0; j < row; j++) {
			if (obstacleGrid[j][0] == 1) break;
			dp[j][0] = 1;
		}
		for (int i = 1; i < row; i++) {
			for (int j = 1; j < col; j++) {
				if (obstacleGrid[i][j] == 0) dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
				else dp[i][j] = 0;
			}
		}
		return dp[row - 1][col - 1];
	}
};

復(fù)雜度分析:

  • 時(shí)間復(fù)雜度: O ( r o w ? c o l ) O(row*col) O(row?col),,row和col分別是地圖的行和列。
  • 空間復(fù)雜度: O ( r o w ? c o l ) O(row*col) O(row?col)

三、完整代碼

# include <iostream>
# include <vector>
using namespace std;

class Solution {
public:
	int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
		int row = obstacleGrid.size(), col = obstacleGrid[0].size();
		vector<vector<int>> dp(row, vector<int>(col, 0));
		for (int i = 0; i < col; i++) {
			if (obstacleGrid[0][i] == 1) break;
			dp[0][i] = 1;
		}
		for (int j = 0; j < row; j++) {
			if (obstacleGrid[j][0] == 1) break;
			dp[j][0] = 1;
		}
		for (int i = 1; i < row; i++) {
			for (int j = 1; j < col; j++) {
				if (obstacleGrid[i][j] == 0) dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
				else dp[i][j] = 0;
			}
		}
		return dp[row - 1][col - 1];
	}
};

int main() {
	//vector<vector<int>> obstacleGrid = { {0, 0, 0}, {0, 1, 0}, { 0, 0, 0 } };
	vector<vector<int>> obstacleGrid = { {0, 1}, {0, 0} };
	Solution s1;
	int result = s1.uniquePathsWithObstacles(obstacleGrid);
	cout << result << endl;
	system("pause");
	return 0;
}

end文章來源地址http://www.zghlxwxcb.cn/news/detail-783863.html

到了這里,關(guān)于【算法與數(shù)據(jù)結(jié)構(gòu)】63、LeetCode不同路徑 II的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(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)文章

  • 【算法與數(shù)據(jù)結(jié)構(gòu)】112、LeetCode路徑總和

    【算法與數(shù)據(jù)結(jié)構(gòu)】112、LeetCode路徑總和

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題通過計(jì)算根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑上節(jié)點(diǎn)的值之和,然后再對比目標(biāo)值。利用文章【算法和數(shù)據(jù)結(jié)構(gòu)】257、LeetCode二叉樹的所有路徑中的遞歸算法。 這里要注意,默認(rèn)路徑之和是

    2024年02月11日
    瀏覽(28)
  • 代碼隨想錄Day33 LeetCode T62不同路徑 LeetCode T63 不同路徑II

    代碼隨想錄Day33 LeetCode T62不同路徑 LeetCode T63 不同路徑II

    動(dòng)規(guī)五部曲 1.確定dp數(shù)組含義 2.確定遞推公式 3.初始化數(shù)組 4.確定遍歷方式 5.打印dp數(shù)組查看分析問題 題目鏈接:62. 不同路徑 - 力扣(LeetCode) 注:n行m列而不是m行n列 1.確定dp數(shù)組含義 代表到達(dá)此下標(biāo)有多少條路徑 2.確定遞推公式 因?yàn)橹荒芟蛴一蛘呦蛳伦?所以到達(dá)i,j這個(gè)點(diǎn)的

    2024年02月06日
    瀏覽(25)
  • leetcode63. 不同路徑 II(動(dòng)態(tài)規(guī)劃-java)

    leetcode63. 不同路徑 II(動(dòng)態(tài)規(guī)劃-java)

    來源:力扣(LeetCode) 鏈接:https://leetcode.cn/problems/unique-paths-ii 一個(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)格中有障礙物。

    2024年02月11日
    瀏覽(24)
  • java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode96. 不同的二叉搜索樹

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode96. 不同的二叉搜索樹

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題目錄(劍指Offer、LeetCode、ACM)-----主目錄-----持續(xù)更新(進(jìn)不去說明我沒寫完): https://blog.csdn.net/grd_java/article/details/123063846 很多人覺得動(dòng)態(tài)規(guī)劃很難,但它就是固定套路而已。其實(shí)動(dòng)態(tài)規(guī)劃只不過是將多余的步驟,提前放到dp數(shù)組中(就是一個(gè)數(shù)組,只

    2024年01月21日
    瀏覽(29)
  • 算法Day39 | 62. 不同路徑,63. 不同路徑 II

    題目鏈接:62. 不同路徑 dp[i][j] 結(jié)果為從起點(diǎn)到該點(diǎn)有多少路徑。 遞歸公式: dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 初始化:因?yàn)橹荒軓纳贤?、從左往右走,因此最上?cè),最左側(cè)初始化為1(1種路徑) 遍歷順序:從上往下,從左往右 也可以使用 滾動(dòng) (一維)數(shù)組。 其中 dp[j] 表示

    2024年02月10日
    瀏覽(22)
  • 算法D39 | 動(dòng)態(tài)規(guī)劃2 | 62.不同路徑 63. 不同路徑 II

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

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

    算法訓(xùn)練Day39:62.不同路徑 63. 不同路徑 II 動(dòng)態(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ī)器人每次只能向下或者向右移動(dòng)一步。機(jī)器人試圖達(dá)到網(wǎng)格的右下角(在下圖中標(biāo)記為 “Finish” )。

    2023年04月25日
    瀏覽(20)
  • 算法隨想錄第三十九天打卡|62.不同路徑 , 63. 不同路徑 II

    本題大家掌握動(dòng)態(tài)規(guī)劃的方法就可以。?數(shù)論方法?有點(diǎn)非主流,很難想到。? 代碼隨想錄 視頻講解: 動(dòng)態(tài)規(guī)劃中如何初始化很重要!| LeetCode:62.不同路徑_嗶哩嗶哩_bilibili 總結(jié) 把m和n弄反了。 https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://programmercarl.com/00

    2024年01月20日
    瀏覽(37)
  • 算法刷刷刷|動(dòng)態(tài)規(guī)劃篇|509.斐波那契數(shù)| 70.爬樓梯| 746.使用最小花費(fèi)爬樓梯| 62.不同路徑| 63不同路徑2| 343.正數(shù)拆分 | 96.不同的二叉搜索樹

    509. 斐波那契數(shù) 斐波那契數(shù) (通常用 F(n) 表示)形成的序列稱為 斐波那契數(shù)列 。該數(shù)列由 0 和 1 開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: F(0) = 0,F(xiàn)(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n 1 給定 n ,請計(jì)算 F(n) 。 70.爬樓梯 746.使用最小花費(fèi)爬樓梯 給你一個(gè)整數(shù)

    2023年04月23日
    瀏覽(24)
  • 力扣 -- 62.不同路徑、63.不同路徑2

    力扣 -- 62.不同路徑、63.不同路徑2

    ? 題目鏈接:64. 最小路徑和 - 力扣(LeetCode)?63. 不同路徑 II - 力扣(LeetCode) 以下是用動(dòng)態(tài)規(guī)劃的思想來解決這兩道類似的動(dòng)規(guī)的題目,相信各位老鐵都是能夠?qū)W會(huì)并且掌握這兩道經(jīng)典的題目的。 參考代碼: 第一題: 第二題、 以上就是分析這兩道dp題目的整個(gè)過程啦,你

    2024年02月15日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包