LeetCode-Solutions
LeetCode-Solutions copied to clipboard
Solution in Java for Valid Sudoku problem 36
Passed in Leetecode : Runtime: 7 ms, faster than 37.05% of Java online submissions for Valid Sudoku. Memory Usage: 43.8 MB, less than 7.38% of Java online submissions for Valid Sudoku.
solution for Vaild sudoku in java
class Solution { public boolean isValidSudoku(char[][] board) { int[][] checkpoint={{0,0},{0,3},{0,6},{3,0},{3,3},{3,6},{6,0},{6,3},{6,6}}; int[] hash={1,2,4,8,16,32,64,128,256,512}; int rowvalid=0; int colvalid=0; int valid=0; char temp; int val;
for(int i=0; i<9; i++){
rowvalid=0;
colvalid=0;
for(int j=0; j<9; j++){
temp=board[i][j];
if(temp!='.'){
val=temp-'0';
if((rowvalid&hash[val])==hash[val])
return false;
rowvalid|=hash[val];
}
temp=board[j][i];
if(temp!='.'){
val=temp-'0';
if((colvalid&hash[val])==hash[val])
return false;
colvalid|=hash[val];
}
}
}
for(int i=0; i<9; i++){
valid=0;
for(int j=0; j<3; j++){
for(int k=0; k<3; k++){
temp=board[checkpoint[i][0]+j][checkpoint[i][1]+k];
if(temp!='.'){
val=temp-'0';
if((valid&hash[val])==hash[val])
return false;
valid|=hash[val];
}
}
}
}
return true;
}
}