-
Notifications
You must be signed in to change notification settings - Fork 2
/
36. Valid Sudoku.cpp
38 lines (35 loc) · 1.08 KB
/
36. Valid Sudoku.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Solution {
//题目的意思是判断当前的数字是否有效
public:
int rowValid[9][10]={{0}};
int colValid[9][10]={{0}};
int subValid[9][10]={{0}};//0代表有效
bool isValidSudoku(vector<vector<char>>& board) {
for(int i=0;i<=8;i++){
for(int j=0;j<=8;j++){
if(board[i][j]=='.')
continue;
int index=(int)(board[i][j]-'0');
if( !isValid(i,j,index) )
return false;
fill(i,j,index);
}
}
return true;
}
bool isValid(int row,int col,int val){
if(colValid[col][val]==0&&rowValid[row][val]==0&&subBoard[row/3*3+col/3][val]==0)
return true;
else
return false;
}
void fill(int row,int col,int val){
rowValid[row][val]=1;
colValid[col][val]=1;
subValid[row/3*3+col/3][val]=1;
}
};
//bug-exist 还是没有写出最终程序
// 不会啊,完全不会
//有关深搜广搜的还是需要多看!
// 不会啊,完全不会