1
class Solution {
2
public:
3
bool isValidSudoku(vector<vector<char>> &board) {
4
int n = board.size();
5

6
for (int i = 0; i < n; i++) {
7
unordered_map<char, int> m;
8
for (int j = 0; j < board[i].size(); j++) {
9
if (board[i][j] == '.') {
10
continue;
11
}
12
if (m.find(board[i][j]) != m.end()) {
13
return false;
14
} else {
15
m[board[i][j]]++;
16
}
17
}
18
}
19

20
for (int i = 0; i < n; i++) {
21
unordered_map<char, int> m;
22
for (int j = 0; j < n; j++) {
23
if (board[j][i] == '.') {
24
continue;
25
}
26

27
if (m.find(board[j][i]) != m.end()) {
28
return false;
29
} else {
30
m[board[j][i]]++;
31
}
32
}
33
}
34

35
for (int i = 0; i < n; i += 3) {
36
for (int j = 0; j < n; j += 3) {
37
unordered_map<char, int> m;
38
for (int k = i; k <= i + 2; k++) {
39
for (int p = j; p <= j + 2; p++) {
40
if (board[k][p] == '.') {
41
continue;
42
}
43

44
if (m.find(board[k][p]) != m.end()) {
45
return false;
46
} else {
47
m[board[k][p]]++;
48
}
49
}
50
}
51
}
52
}
53

54
return true;
55
}
56
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0