进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。

这道题目和169.majority-element 很像。

我们仍然可以采取同样的方法 - “摩尔投票法”, 具体的思路可以参考上面的题目。

因此我们不能只用一个 counter 来解决了。 我们的思路是同时使用两个 counter,其他思路和上一道题目一样。

最后需要注意的是这两个 counter 只是出现次数最多的两个数字 不一定都满足条件出现次数大于 1/3,因此最后我们需要进行过滤筛选。

最后得到的只是出现次数最多的两个数字,有可能不满足出现次数大于 1/3

cnt1++;

这个实现说实话不是很好,大家可以优化一下。