Skip to content

Latest commit

 

History

History
45 lines (43 loc) · 1.38 KB

036.md

File metadata and controls

45 lines (43 loc) · 1.38 KB

36. Valid Sudoku

Solution 1

class Solution {
    public boolean isValidSudoku(char[][] board) {
        boolean[] flag = new boolean[9];
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++)
                flag[j] = false;
            for (int j = 0; j < 9; j++) {
                if (board[i][j] != '.') {
                    if (flag[board[i][j] - '1'] == true)
                        return false;
                    flag[board[i][j] - '1'] = true;
                }
            }
            for (int j = 0; j < 9; j++)
                flag[j] = false;
            for (int j = 0; j < 9; j++) {
                if (board[j][i] != '.') {
                    if (flag[board[j][i] - '1'] == true)
                        return false;
                    flag[board[j][i] - '1'] = true;
                }
            }
            for (int j = 0; j < 9; j++)
                flag[j] = false;
            int x = i / 3 * 3;
            int y = i % 3 * 3;
            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < 3; k++) {
                    if (board[x + j][y + k] != '.') {
                        if (flag[board[x + j][y + k] - '1'] == true)
                            return false;
                        flag[board[x + j][y + k] - '1'] = true;
                    }
                }
            }
        }
        return true;
    }
}