use three 2-d matrix to store if any column, row or block has more than one specific value.
1 public class Solution { 2 public boolean isValidSudoku(char[][] board) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 boolean[][] rows = new boolean[9][9]; 6 boolean[][] cols = new boolean[9][9]; 7 boolean[][] blocks = new boolean[9][9]; 8 9 for (int i = 0; i < 9; ++i) { 10 for (int j = 0; j < 9; ++j) { 11 if (board[i][j] == '.') continue; 12 int c = board[i][j] - '1'; 13 if (rows[i][c] || cols[j][c] || blocks[i - i % 3 + j / 3][c]) 14 return false; 15 rows[i][c] = cols[j][c] = blocks[i - i % 3 + j / 3][c] = true; 16 } 17 } 18 return true; 19 } 20 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步