Solve Hitori Puzzles
Haskell, 374 bytes



import Data.Array;import Data.List;r=range;p=partition
c(e,f)=p(\(b,p)-&gt;any(==1)[(b-d)^2+(p-q)^2|(d,q)&lt;-e])f
n#g=[s|(o,(e:f))&lt;-[p((==0).(g!))$indices g],
 null.fst$c(o,o),null.snd$until(null.fst)c([e],f),
 s&lt;-case[((l,c),d)|((l,c),h)&lt;-assocs g,h&gt;0,
 d&lt;-[filter((==h).(g!))$r((l,c+1),(l,n))++r((l+1,c),(n,c))],d/=[]]
 of[]-&gt;[g];((c,d):_)-&gt;n#(g//[(c,0)])++n#(g//[(c,0)|c&lt;-d])]


Try it online!