【題目描述】
Follow up for "Unique Paths":
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as1and0respectively in the grid.
"不同的路徑" 的跟進(jìn)問題:
現(xiàn)在考慮網(wǎng)格中有障礙物,那樣將會有多少條不同的路徑?
網(wǎng)格中的障礙和空位置分別用1 和 0 來表示。
【注】:m 和 n 均不超過100
【題目鏈接】
www.lintcode.com/en/problem/unique-paths-ii/
【題目解析】
這道題大體想法跟Unique Path是一樣的。只是要單獨(dú)考慮下障礙物對整個棋盤的影響。先看看初始條件會不會受到障礙物的影響。
假設(shè)整個棋盤只有一行,那么在第i個位置上設(shè)置一個障礙物后,說明位置i到最后一個格子這些路都沒法走了。如果整個棋盤只有一列,那么第i位置上的障礙物,也會影響從第i位置往后的路。所以說明,在初始條件時,如果一旦遇到障礙物,障礙物后面所有格子的走法都是0。
再看求解過程,當(dāng)然按照上一題的分析dp[i][j] = dp[i-1][j] + dp[i][j-1] 的遞推式依然成立(機(jī)器人只能向下或者向右走嘛)。但是,一旦碰到了障礙物,那么這時的到這里的走法應(yīng)該設(shè)為0,因?yàn)闄C(jī)器人只能向下走或者向右走,所以到這個點(diǎn)就無法通過。
處理完障礙物的特殊問題,依照unique paths改一下代碼就好。
【參考答案】