Leetcode 576 出界的路勁數

2021-09-24 14:50:05 字數 1293 閱讀 9595

給定乙個m × n的網格和乙個球。球的起始座標為(i,j),你可以將球移到相鄰的單元格內,或者往上、下、左、右四個方向上移動使球穿過網格邊界。但是,你最多可以移動n次。找出可以將球移出邊界的路徑數量。答案可能非常大,返回 結果 mod 109 + 7 的值。

示例 1:

輸入:m = 2, n = 2, n = 2, i = 0, j = 0

輸出:6

解釋:

示例 2:

輸入:m = 1, n = 3, n = 3, i = 0, j = 1

輸出:12

解釋:

說明:

球一旦出界,就不能再被移動回網格內。

網格的長度和高度在 [1,50] 的範圍內。

n 在 [0,50] 的範圍內。

以(i, j)為起始點,其中dp[k][x][y]表示用了k步,進入(x, y)位置的路徑數,由於dp[k][x][y]只依賴於dp[k-1][x][y],所以我們可以用乙個二維dp陣列來代替,初始化dp[i][j]為1,總共n步,進行n次迴圈,每次都新建乙個mxn大小的臨時陣列t,然後就是對於遍歷到的每個位置,都遍歷其四個相鄰位置,如果相鄰位置越界了,那麼我們用當前位置的dp值更新結果res,因為此時dp值的意義就是從(i,j)到越界位置的路徑數。如果沒有,我們將當前位置的dp值賦給t陣列的對應位置,這樣在遍歷完所有的位置時,將陣列t整個賦值給dp,然後進入下一步的迴圈。

1

class

solution ,,,};

6 dp[x][y]=1;

7int res=0;

8for(int k=0;k)20}

21}22 dp=t;23}

24return

res;25}

26 }

Leetcode 576 出界的路徑數

給定乙個 m n 的網格和乙個球。球的起始座標為 i,j 你可以將球移到相鄰的單元格內,或者往上 下 左 右四個方向上移動使球穿過網格邊界。但是,你最多可以移動 n 次。找出可以將球移出邊界的路徑數量。答案可能非常大,返回 結果 mod 109 7 的值。示例 1 輸入 m 2,n 2,n 2,i ...

leetcode576 出界的路徑數

題目 給定乙個 m n 的網格和乙個球。球的起始座標為 i,j 你可以將球移到相鄰的單元格內,或者往上 下 左 右四個方向上移動使球穿過網格邊界。但是,你最多可以移動 n 次。找出可以將球移出邊界的路徑數量。答案可能非常大,返回 結果 mod 10 9 7 的值。一開始看題,以為類似機械人路徑問題,...

leetcode演算法題 出界的路徑數

動態規劃 dp i j k 儲存的是在 i,j 這個點,步數為k的所有路徑數狀態轉移 dp i j len dp i 1 j len 1 dp i j 1 len 1 dp i 1 j len 1 dp i j 1 len 1 表示從上下左右四個點走到 i,j 的路徑數 int findpaths ...