n*n
各要素が整数を表す行列があります。から始めて、最後の行までの要素[0,0]
のパスを正確に見つけてm
、最大コストを返す必要があります。パスは、最後の行の任意の列で終了でき、n ≤ m ≤ n^2
m
から[0,0]
までの長さのすべてのパスを見つけることを考えました[n-1, 0], [n-1, 1] ... [n-1, n-1]
。しかし、それは最適とは感じません...
これを行う最も効率的な方法はどのアルゴリズムですか?BFSまたはDFS?
編集
可能な方向は下/右/左ですが、各要素にアクセスできるのは最大で1回だけです。
編集2
したがって、たとえば、この行列が与えられた場合(n = 4):
[ 1 4 1 20 ]
[ 5 0 2 8 ]
[ 6 8 3 8 ]
[ 3 2 9 5 ]
そしてm=7の場合、パスは次のようになります。
[ → → → ↓ ]
[ 5 0 2 ↓ ]
[ 6 8 3 ↓ ]
[ 3 2 9 x ] = Path cost = 47
また
[ ↓ 4 1 20 ]
[ ↓ 0 2 8 ]
[ → → ↓ 8 ]
[ 3 2 → x ] = Path cost = 32
またはm = n^2
[ → → → ↓ ]
[ ↓ ← ← ← ]
[ → → → ↓ ]
[ x ← ← ← ]
編集3/ソリューション
WanderleyGuimarães、http://ideone.com/0iLS2に感謝し
ます