Skip to content

Conversation

@rickben
Copy link

@rickben rickben commented Oct 31, 2020

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.

@Tanmaybhujade
Copy link

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

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants