TGViewer
JavaScript | LeetCode JavaScript | LeetCode @easy_frontend_task · 8.3K subscribers
Post #1992 557
Задача: 36. Valid Sudoku
Сложность: medium

Дана доска Sudoku 9x9. Нужно проверить, является ли она действительной. Проверке подлежат только заполненные ячейки, по правилам:
- В каждой строке цифры от 1 до 9 не должны повторяться
- В каждом столбце цифры от 1 до 9 не должны повторяться
- В каждом из девяти блоков 3x3 цифры от 1 до 9 не должны повторяться

Пример:
Input: board = 
[["5","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]]
Output: true


👨‍💻 Алгоритм:

1️⃣ Создаем три структуры: rowSet, colSet, boxSet (или Map), чтобы отслеживать наличие чисел в строках, столбцах и блоках 3x3.

2️⃣ Проходим по каждой ячейке поля:
- Пропускаем, если это .
- Проверяем наличие текущей цифры в соответствующей строке, столбце и блоке
- Если она уже была — возвращаем false
- Иначе добавляем в соответствующие множества

3️⃣ Если дошли до конца, не нарушив правил — возвращаем true

😎 Решение:
var isValidSudoku = function(board) {
const rows = new Array(9).fill(0).map(() => new Set());
const cols = new Array(9).fill(0).map(() => new Set());
const boxes = new Array(9).fill(0).map(() => new Set());

for (let r = 0; r < 9; r++) {
for (let c = 0; c < 9; c++) {
const val = board[r][c];
if (val === '.') continue;

const boxIdx = Math.floor(r / 3) * 3 + Math.floor(c / 3);

if (rows[r].has(val) || cols[c].has(val) || boxes[boxIdx].has(val)) {
return false;
}

rows[r].add(val);
cols[c].add(val);
boxes[boxIdx].add(val);
}
}

return true;
};


Ставь 👍 и забирай 📚 Базу знаний
  • 💊 2
More from @easy_frontend_task
  1. Oct 14, 2026Post #2575
  2. Oct 13, 2026Задача: 687. Longest Univalue Path Сложность: medium Дано корень бинарного дерева, верните…
  3. Oct 11, 2026Задача: 651. 4 Keys Keyboard Сложность: medium Представьте, что у вас есть специальная кла…
  4. Oct 9, 2026Задача: 1054. Distant Barcodes Сложность: medium На складе имеется ряд штрих-кодов, где i-…
  5. Oct 9, 2026Задача: 1237. Find Positive Integer Solution for a Given Equation Сложность: medium Если д…
  6. Oct 8, 2026Задача: №19. Remove Nth Node From End of List Сложность: medium Дан связанный список и чис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →