Skip to content

Latest commit

 

History

History
40 lines (35 loc) · 1.1 KB

File metadata and controls

40 lines (35 loc) · 1.1 KB

Screen Shot 2022-09-08 at 22 15 34

T.C. O(N^2)

S.C O(N^2)

/**
 * @param {character[][]} board
 * @return {boolean}
 */

/*
[3*Math.floor(i/3)+Math.floor(j/3)][3*(i%3)+(j%3)]
*/
var isValidSudoku = function(board) {
    for(let i = 0; i < 9; i++) {
        let row = new Set(), col = new Set(), box = new Set();
        for(let j = 0; j < 9; j++) {
            let rowElement = board[i][j];
            let colElement = board[j][i];
            let block = board[3*Math.floor(i/3)+Math.floor(j/3)][3*(i%3)+(j%3)]
            
            if(rowElement !== ".") {
                if(row.has(rowElement)) return false;
                row.add(rowElement);
            }
            if(colElement !== ".") {
                if(col.has(colElement)) return false;
                col.add(colElement);
            }
            if(block !== ".") {
                if(box.has(block)) return false;
                box.add(block)
            }
        }
    }
    return true
};