Đang tải…
Đang tải…
Quay lui ở dạng dễ nhận ra nhất: thử một số, đệ quy, và xóa nó ngay khi nhánh đó chết.
Có 73 số cho trước và 8 ô trống. Quay lui sẽ điền theo thứ tự đọc, thử 1 tới 9 ở mỗi ô và hoàn tác ngay khi một ô không còn số hợp lệ nào.
1boolean solve(int[][] b) {2 for (int r = 0; r < 9; r++)3 for (int c = 0; c < 9; c++) {4 if (b[r][c] != 0) continue;5 for (int d = 1; d <= 9; d++) {6 if (!legal(b, r, c, d)) continue; // hàng, cột và khối 3×3 đều phải chấp nhận7 b[r][c] = d;8 if (solve(b)) return true;9 b[r][c] = 0; // hoàn tác — đây là bước quay lui10 }11 return false;12 }13 return true; // không còn ô trống → đã giải14}