5
vector<vector<int>> state;10
int slidingPuzzle(vector<vector<int>> &board) {11
vector<vector<int>> target = {{1, 2, 3}, {4, 5, 0}};15
vector<vector<int>> dir = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};17
for (int i = 0; i < board.size(); i++)18
for (int j = 0; j < board[0].size(); j++) {19
if (board[i][j] == 0) {20
q.push({i, j, board});25
set<vector<vector<int>>> set;26
set.insert(q.front().state);30
for (int i = 0; i < size; i++) {31
Node curr = q.front();33
if (curr.state == target) return ladder;41
if (r < n && r >= 0 && c < m && c >= 0) {42
swap(curr.state[r][c], curr.state[row][col]);43
if (set.find(curr.state) == set.end()) {44
set.insert(curr.state);45
q.push({r, c, curr.state});47
swap(curr.state[r][c], curr.state[row][col]);