137. Single Number II

Given an array of integers, every element appears three times except for one. Find that single one.

给一个数组,每个数字都出现三次,只有一个数字出现一次,找出这个出现一次的数字。

参考代码:

参考代码

解题思路:定义长度32的数组,每个位置存储的是,nums里每个数字的第i个位置的 1 的个数,存储完毕i的位置的 1 的个数后,进行取模3运算,如果结果为 0 说明被求数字在这个位置上的bit是0,如果为 1 则说明被求数字这个位置上的数字是 1,一次类推,求完第一个位置,求第二个,再求第 i 个 位置,所有的结果进行 或(|) 运算,最终把所求的数字求出。

时间是 O(32*N),如果把出现3次改为k次,只需要改为 模 k即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容