数组中数字出现的次数
问题简述
数组 nums 中除一个数字只出现一次外,其他数字都出现了三次。找出那个只出现一次的数字。
要求:时间复杂度 O(N),空间复杂度 O(1)
思路1
统计每个数字二进制各位出现的次数,然后对各位出现的次数对 3 求余,即可得到目标值的二进制各位的值;
因为每个数的二进制位数是固定的,所以空间复杂度依然是
O(1)
;
优化:上述Python代码只能处理正数,如果是负数还要一步操作
思路2:有限状态自动机
Last updated
问题简述
数组 nums 中除一个数字只出现一次外,其他数字都出现了三次。找出那个只出现一次的数字。
要求:时间复杂度 O(N),空间复杂度 O(1)
思路1
统计每个数字二进制各位出现的次数,然后对各位出现的次数对 3 求余,即可得到目标值的二进制各位的值;
因为每个数的二进制位数是固定的,所以空间复杂度依然是 O(1)
;
优化:上述Python代码只能处理正数,如果是负数还要一步操作
思路2:有限状态自动机
Last updated