#include "s0036_valid_sudoku.hpp" bool S0036::isValidSudoku(vector>& board) { vector> rows; vector> columns; vector> grids; // Initialize vectors for (int i{0}; i < 9; ++i) { rows.push_back(unordered_map{}); columns.push_back(unordered_map{}); grids.push_back(unordered_map{}); } for (int i{0}; i < 9; ++i) { for (int j{0}; j < 9; ++j) { if (board[i][j] == '.') { continue; } if (rows[j].count(board[i][j]) == 1) { return false; } else { rows[j][board[i][j]] = 1; } if (columns[i].count(board[i][j]) == 1) { return false; } else { columns[i][board[i][j]] = 1; } int gridIndex = static_cast(floor(j / 3)) + 3 * static_cast(floor(i / 3)); if (grids[gridIndex].count(board[i][j]) == 1) { return false; } else { grids[gridIndex][board[i][j]] = 1; } } } return true; }