leetcode 62.異なる経路(C ++)

左コーナーMXNグリッドに位置ロボットは(以下、「スタート」と表示されたポイントのフィギュアを開始します)。

ロボットは右または下に一歩を移動することができます。(「完了」と表示され、次の図の)グリッドの右下隅に到達しようとしているロボット。

Q.合計でありますどのように多くの異なるパス?

クラス解決{
 パブリックINT uniquePaths(INT M、int型N){ 
        ベクトル < INT > DP(N、1 )。
        int型 iは= 1 ; iが<M ++ {i)が
             ためINT J = 1 ; J <N ++ J){ 
                DP [J] - + = DP [J 1 ;] 
            } 
        } 
        戻り DP [N - 1 ]。
    } 
}。

アイデア:

ダイナミックプログラミング、その質問ラダーアナロジーを登ります。DPは、DP [I] [j]は歩行方法の異なる数の現在位置を表すが、次いで、漸化式のように得ることができる二次元アレイ、維持することができる:DP [I] [J] = DPを[I - 1] [J] + DP [I] [J - 1]のラインによって、スペースを節約するために、我々は1次元配列のDPを使用し、ラインをリフレッシュすることができます

おすすめ

転載: www.cnblogs.com/xiaotongtt/p/11318342.html