Valid Sudoku

Determine if a Sudoku is valid, according to:Sudoku Puzzles - The Rules.

The Sudoku board could be partially filled, where empty cells are filled with the character'.'.

A partially filled sudoku which is valid.

Note: A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

分析

对于小方块,大坐标(i,j)-> 小坐标(( i / 3, j / 3) 是块的坐标,定位到块)->大坐标((row / 3) * 3在真正位置travel)

三个数组row[i][val] ,col[j][val] ,block[index][val] 。此处block的index = i / 3 * 3 + j / 3.

( i / 3, j / 3) 是块的坐标,i / 3 * 3 + j / 3直接定位到第几块,相当是 i*row+j(island里定位常用)

2种块坐标表达法

val就是数字1-9,类似dp里背包用val做Index

用bit做,因为每次loop,row的值都知道了,所以每次loop,row都重设为0,但是col和block的值需要完全loop完整个board才知道,所以用数组存下了col和block所有的值,这里总共81个值。所以数组9

python, 注意是cols[j] 不是cols[i]

Last updated

Was this helpful?