2024年3月21日发(作者:)

自适应分层代码

public class DivideLayer 。

private int[][] matrix;。

public DivideLayer(int[][] matrix) 。

= matrix;。

}。

public List> divideLayer() 。

List> res = new ArrayList<>();。

int[] visited = new int[];。

for (int i = 0; i < ; i++) 。

visited[i] = 0;。

}。

List list = new ArrayList<>();。

(0);。

dfs(1, res, list, visited);。

return res;。

}。

private void dfs(int index, List> res,

List list, int[] visited) 。

if (index == ) 。

if (() > 1) 。

List subList = new ArrayList<>();。

for (int i : list) 。

int[][] subMatrix = new int[()][()];。

for (int j = 0; j < (); j++) 。

for (int k = 0; k < (); k++) 。

subMatrix[j][k] = matrix[(j)][(k)];。

}。

}。

(subMatrix);。

}。

(subList);。

}。

return;。

}。

for (int i = 0; i < ; i++) 。

if (visited[i] == 0) 。

(i);。

visited[i] = 1;。

dfs(index + 1, res, list, visited);。

(() - 1);。

visited[i] = 0;。

}。

}。

}。