This blog post describes algorithm that solves NxN Lights Out puzzle in O(N^3) time instead of usual O(N^6)