Встречается на собеседованиях • сегодня
Решал ли судоку
Да, решал судоку на Java. Вот пример простого решателя с backtracking:
java
public class SudokuSolver {
public boolean solve(int[][] board) {
for (int row = 0; row < 9; row++) {
for (int col = 0; col < 9; col++) {
if (board[row][col] == 0) {
for (int num = 1; num <= 9; num++) {
if (isValid(board, row, col, num)) {
board[row][col] = num;
if (solve(board)) return true;
board[row][col] = 0; // backtrack
}
}
return false;
}
}
}
return true;
}
text
private boolean isValid(int[][] board, int row, int col, int num) {
for (int i = 0; i < 9; i++) {
if (board[row][i] == num || board[i][col] == num ||
board[3 * (row / 3) + i / 3][3 * (col / 3) + i % 3] == num) {
return false;
}
}
return true;
}}
text
Алгоритм проверяет пустые клетки (0), подставляет числа от 1 до 9 и рекурсивно ищет решение. Если заходит в тупик — откатывается (backtracking). Сложность: O(9^(n*n)), но на практике работает быстрее.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы