Min Steps in a matrix
Rippling OAuser_4874964657
python
3 years ago
562 B
6
Indexable
import sys
n,m=[int(i) for i in input().split()]
mat=[]
for i in range(n):
l=[int(i) for i in input().split()]
mat.append(l)
vis=[[-1]*m for i in range(n)]
dp=[[9999999]*m for i in range(n)]
def min_steps(i,j):
if i==n-1 and j==m-1:
return 0
if i>n-1 or j>m-1:
return 9999999
if vis[i][j]!=-1:
return dp[i][j]
vis[i][j]=0
dp[i][j]=1+min(min_steps(i+mat[i][j],j),min_steps(i,j+mat[i][j]))
return dp[i][j]
res=min_steps(0,0)
print(dp)
if res>=9999999:
print(-1)
else:
print(res)Editor is loading...