有效的数独先检测行和列,然后检测九个九宫格 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/** * @param {character[][]} board * @return {boolean} */var isValidSudoku = function (board) { // 检测行、列 for (let row = 0; row < 9; row++) { const rowSet = new Set(); const colSet = new Set(); for (let col = 0; col < 9; col++) { if (board[row][col] !== "." && rowSet.has(board[row][col])) { return false; } else { rowSet.add(board[row][col]); } if (board[col][row] !== "." && colSet.has(board[col][row])) { return false; } else { colSet.add(board[col][row]); } } } // 检测九个九宫格 for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { const set = new Set(); for (let row = i * 3; row < (i + 1) * 3; row++) { for (let col = j * 3; col < (j + 1) * 3; col++) { if (board[row][col] !== "." && set.has(board[row][col])) { return false; } else { set.add(board[row][col]); } } } } } return true;};// console.log(// isValidSudoku([// ["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"],// ])// );