LeetCode-Solutions icon indicating copy to clipboard operation
LeetCode-Solutions copied to clipboard

Solution in Java for Valid Sudoku problem 36

Open rickben opened this issue 4 years ago • 1 comments

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.

rickben avatar Oct 31 '20 15:10 rickben

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;
}

}

Tanmaybhujade avatar Feb 14 '23 07:02 Tanmaybhujade