DP トピック 4 つの異なるパス |

トピック:

アイデア:

        質問の意味に応じて 2 次元の dp を定義します. dp の i と j の意味は対応する座標です. dp はその座標に対応する異なるパスの数であり, 単純なデータを列挙することで知ることができます.

最初に初期化する必要がありますが、右の 1 行目の座標に対応する異なるパスの数と、下方向の 1 列目の座標に対応する異なるパスの数は両方とも 1 です。ロボットは右と下にしか移動できないからです。

次に、シミュレーションの再帰に従って、再帰式は dp[i][j] = dp[i - 1][j] + dp[i][j - 1] であることがわかります。

コードについては以下で詳しく説明します。

int uniquePaths(int m, int n) 
{
	int g[m + 1][n + 1];
	int dp[m + 1][n + 1];
	
	// 初始化 dp
	for(int i = 0;i <= n;++i)
	{
		dp[0][i] = 1;
	}
	for(int i = 0;i <= m;++i)
	{
		dp[i][0] = 1;
	}
	
	// 开始递推公式
	for(int i = 1;i < m;++i)
	{
		for(int j = 1;j < n;++j)
		{
			dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
		}
	}
	return dp[m - 1][n - 1];
}

最後のコミット:

おすすめ

転載: blog.csdn.net/hacker_51/article/details/132877011