原題**:
現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?
網格中的障礙和空位置分別用 1 和 0 來表示。
m 和 n 均不超過100
您在真實的面試中是否遇到過這個題? 是
[
[0,0,0],
[0,1,0],
[0,0,0]
]
一共有2條不同的路徑從左上角到右下角。
標籤陣列
動態規劃(dp)
思路:方法同不同的路勁類似,只不過要注意有障礙物的情況。有障礙物的地方dp值為0,這裡尤其注意如果第乙個點(0,0)就是障礙物,則整個grid無法走通,直接return 0即可。同理,初始化第一行、第一列時,如果遇到乙個障礙物,後面的dp值全為0。
ac**:
classsolution
int col=obstaclegrid[0
].size();
if (col==0
)
vector
int>> dp(row,vector(col,0
));
if (obstaclegrid[0][0]==0
)
else
//如果第一步都走不通,說明無法到達右下角,直接返回0;
for (int i=1;i)
else
//第一列只要出現乙個障礙,後面的就無法走通;
}for (int j=1;j)
else
//第一行只要出現乙個障礙,後面的就無法走通;
}for (int i=1;i)}}
return dp[row-1][col-1
]; }
};
其他實現方式:
115 不同的路徑 II
中文english 不同的路徑 的跟進問題 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?網格中的障礙和空位置分別用 1 和 0 來表示。example 1 input 0 output 1 example 2 input 0,0,0 0,1,0 0,0,0 output 2 explanat...
lintCode 115 不同的路徑
問題描述 不同的路徑 的跟進問題 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?網格中的障礙和空位置分別用 1 和 0 來表示。如下所示在3x3的網格中有乙個障礙物 0,0,0 0,1,0 0,0,0 一共有2條不同的路徑從左上角到右下角。思路 由於部分格仔有障礙物,不能訪問到,需要對左上角和...
lintcode練習 115 不同的路徑 II
不同的路徑 的跟進問題 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?網格中的障礙和空位置分別用 1 和 0 來表示。如下所示在3x3的網格中有乙個障礙物 0,0,0 0,1,0 0,0,0 一共有2條不同的路徑從左上角到右下角。m 和 n 均不超過100 如注釋,動態規劃類的題,最主要的是思...