576. Out of Boundary Paths
Posted stAr_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了576. Out of Boundary Paths相关的知识,希望对你有一定的参考价值。
There is an m by n grid with a ball. Given the start coordinate (i,j) of the ball, you can move the ball to adjacent cell or cross the grid boundary in four directions (up, down, left, right). However, you can at most move N times. Find out the number of paths to move the ball out of grid boundary. The answer may be very large, return it after mod 109 + 7.
就是从一个地点出发,N步之内出范围的路径有哪些,格子可以重复走,所以用步数来限制多次走来是不同路径
思路是用dp[k][r][jc代表第k步从r,c出发的路径数,动态方程:
dp[k][r][c] = (((r==0)?1:dp[k-1][r-1][c]%num)+((r==m-1)?1:dp[k-1][r+1][c]%num)+((c==0)?1:dp[k-1][r][c-1]%num)+((c==n-1)?1:dp[k-1][r][c+1]%num))%num;
public int findPaths(int m, int n, int N, int i, int j) { int num = 1000000007; long[][][] dp = new long[N+1][m][n]; for (int k = 1;k < N+1;k++) { for (int r = 0; r < m; r++) { for (int c = 0; c < n; c++) { dp[k][r][c] = (((r==0)?1:dp[k-1][r-1][c]%num)+((r==m-1)?1:dp[k-1][r+1][c]%num)+((c==0)?1:dp[k-1][r][c-1]%num)+((c==n-1)?1:dp[k-1][r][c+1]%num))%num; } } } return (int)dp[N][i][j]; }
以上是关于576. Out of Boundary Paths的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 576. Out of Boundary Paths
第十一周 Leetcode 576. Out of Boundary Paths (HARD) 计数dp
2021-8-15 Out of Boundary Paths
LeetCode 545. Boundary of Binary Tree