这篇题目与leetcode200. Number of Islands思路非常相近,建议毫无思路的同学先参考一下这篇博客。其实这种将区域相连的题目往往都可以使用深度优先遍历或者是Union-Find方法来实现。在这里我就给出深度优先遍历的实现方法,有兴趣的同学可以参考上文的博客来自己实现Union-Find方法。
在看下面的文章前,请先参考我的这篇文章关于Single Number I。按照思路一和思路二很容易将这题解决。下面要讲一个通过位计算来实现的方法。在这里,我们希望将出现三次的数字通过%3操作划掉。比如将一个数字化为二进制数之后,在某一位上的数字为1,则1*3%3=0,如果在某一位上为0,则0*3%3=0。也就是说,出现三次的数值...