2
int[][] dir = {{1, 3}, {0, 2, 4}, {1, 5}, {0, 4}, {1, 3, 5}, {2, 4}};4
public int slidingPuzzle(int[][] board) {10
for (int i = 0; i < board.length; i++) {11
for (int j = 0; j < board[i].length; j++) {16
HashSet<String> visited = new HashSet<>();20
ArrayDeque<String> q = new ArrayDeque<>();22
while (q.size() != 0) {26
String rem = q.remove();28
if (rem.equals(tar)) {34
for (int i = 0; i < rem.length(); i++) {35
if (rem.charAt(i) == '0') {41
for (int i = 0; i < dir[idx].length; i++) {42
String str = swapEle(rem, idx, dir[idx][i]);44
if (!visited.contains(str)) {56
public String swapEle(String rem, int i, int j) {57
StringBuilder sb = new StringBuilder(rem);59
sb.setCharAt(i, rem.charAt(j));60
sb.setCharAt(j, rem.charAt(i));