首页 > 代码库 > A sudoku verifier
A sudoku verifier
public class SudokuVerifier { private boolean is1To9Row(int[][] a, int r) { int[] pos = new int[9]; for (int i = 0; i < 9; i++) { if (pos[a[r][i]] == 1) return false; pos[a[r][i]] = 1; } for (int i : pos) { if (i == 0) return false; } return true; } private boolean is1To9Column(int[][] a, int c) { int[] pos = new int[9]; for (int i = 0; i < 9; i++) { if (pos[a[i][c]] == 1) return false; pos[a[i][c]] = 1; } for (int i : pos) { if (i == 0) return false; } return true; } private boolean is1To9Sec(int[][] a, int x, int y) { int[] pos = new int[9]; for (int i = 0 ; i < 3 ; i ++) { for (int j = 0 ; j < 3 ; j ++) { if (pos[a[x + i][x + j]] == 1) return false; pos[a[x + i][x + j]] = 1; } } for (int i : pos) { if (i == 0) return false; } return true; } // O(n) private boolean isValid(int[][] a) { // Assumes... for (int i = 0 ; i < 9 ; i ++) { // Rows if (!is1To9Row(a, i)) return false; // Columns if (!is1To9Column(a, i)) return false; } // Secs for (int i = 0 ; i < 9 ; i += 3) { for (int j = 0 ; j < 9 ; j += 3) { if (!is1To9Sec(a, i, j)) return false; } } return true; } }
A sudoku verifier
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。