I made a solver for the game Fill (on Google Play and Apple Store) for the levels that have a unique solution (before a certain level).

It runs in O(nα(n)) time and O(n) space for n cells, but while it fully solves most levels, it cannot fully solve all. Some levels can be solved only partially by inspection, which is what this algorithm does for efficiency.

These levels cannot be solved completely: 163, 321, 346, 347, 366, 436, 460, 463, 466, 476, 494, 578, 606, 612