package com.zerroi.leetcode.Three16; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class IsValidSudoku { public static void main(String[] args) { System.out.println(5 / 3); } } class SolutionFirst { public boolean isValidSudoku(char[][] board) { Set set = new HashSet<>(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { char c = board[i][j]; if (c != '.'&& set.contains(c)) return false; set.add(c); } set.clear(); } Set setRow = new HashSet<>(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { char c = board[j][i]; if (c != '.' && setRow.contains(c)) return false; setRow.add(c); } setRow.clear(); } Set setBlock = new HashSet<>(); for (int i = 0; i < 9; i++) { int m = i / 3; int n = i % 3; setBlock.clear(); for (int k = m * 3; k < m * 3 + 3; k++) { for (int j = n * 3; j < n * 3 + 3; j++) { char c = board[k][j]; if (c != '.' && setBlock.contains(c)) return false; setBlock.add(c); } } } return true; } public boolean isValidSudoku2(char[][] board) { Set set = new HashSet<>(); Map map = new HashMap<>(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { char c = board[i][j]; if (c != '.'&& set.contains(c)) return false; map.put(c, 1); } set.clear(); } Set setRow = new HashSet<>(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { char c = board[j][i]; if (c != '.' && setRow.contains(c)) return false; setRow.add(c); } setRow.clear(); } Set setBlock = new HashSet<>(); for (int i = 0; i < 9; i++) { int m = i / 3; int n = i % 3; setBlock.clear(); for (int k = m * 3; k < m * 3 + 3; k++) { for (int j = n * 3; j < n * 3 + 3; j++) { char c = board[k][j]; if (c != '.' && setBlock.contains(c)) return false; setBlock.add(c); } } } return true; } }