void clean(int arr[10]){
memset(arr, 0, sizeof(int) * 10);
}
bool isValidSudoku(char** arr, int boardSize, int* boardColSize){
int arr1[10];
int arr2[10];
int i, j;
/* 判断横竖 */
for(i=0; i<9; i++){
clean(arr1);
clean(arr2);
for(j=0; j<9; j++){
if(arr[i][j] >= '0' && arr[i][j] <= '9'){
if(arr1[arr[i][j]-'0']){
return false;
}
arr1[arr[i][j]-'0'] = 1;
}
if(arr[j][i] >='0' && arr[j][i] <= '9'){
if(arr2[arr[j][i]-'0']){
return false;
}
arr2[arr[j][i]-'0'] = 1;
}
}
}
/* 判断田字格 */
int k, l;
for(i=0; i<3; i++){
for(j=0; j<3; j++){
clean(arr1);
for(k=3*i; k<3*i+3; k++){
for(l=3*j; l<3*j+3; l++){
printf("k=%d, l=%d\n", k, l);
if(arr[k][l] >= '0' && arr[k][l] <= '9'){
if(arr1[arr[k][l]-'0'])return false;
arr1[arr[k][l]-'0'] = 1;
}
}
}
}
}
return true;
}
LeetCode-36-有效的数独-C语言
最新推荐文章于 2022-12-08 17:28:22 发布