anaghgg
BAN USERimport java.util.*;
public class PathInMatrix {
public static boolean utilityPath(int x,int y,int m,int n,int[][] mat,List<List<Integer>> path)
{
if(x==m-1 && y==n-1)
{
path.add(Arrays.asList(x,y));
path.forEach((p)->System.out.println(p.get(0)+","+p.get(1)));
return true;
}
if(x>=0 && x<m && y>=0 && y<n && mat[x][y]==1)
{
path.add(Arrays.asList(x,y));
if(utilityPath(x+1,y,m,n,mat,path) || utilityPath(x,y+1,m,n,mat,path))
return true;
path.remove(path.size()-1);
}
return false;
}
public static void getPath(int[][] mat)
{
boolean path=utilityPath(0,0,mat.length,mat[0].length,mat,new ArrayList<>());
}
public static void main(String[] args) {
int[][] mat={{1,0,0,0},{1,1,0,0},{0,1,1,0},{1,1,1,1}};
getPath(mat);
}
}
- anaghgg September 25, 2020