LeetCode/com/zerroi/leetcode/Three16/IsValidSudoku.java

90 lines
2.6 KiB
Java
Raw Permalink Normal View History

2024-03-21 19:03:41 +08:00
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<Character> 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<Character> 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<Character> 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<Character> set = new HashSet<>();
Map<Character, Integer> 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<Character> 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<Character> 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;
}
}