只出现一次的数字 II
题目链接: https://leetcode.cn/problems/single-number-ii
解题思路:
对于每个数字
num
,分别更新变量a
和b
的值,具体来说,更新a
的值为(a ^ num) & ^b
,更新b
的值为(b ^ num) & ^a
这两个式子的含义是将
num
与a
进行异或运算,然后将结果与b
取反的结果进行按位与运算,得到新的a
的值将
num
与b
进行异或运算,然后将结果与a
取反的结果进行按位与运算,得到新的b
的值这样可以保证
a
和b
中只存储出现一次的数字,而不存储出现多次的数字
复杂度分析
时间复杂度: 时间复杂度:,其中 是数组长度
空间复杂度: 空间复杂度是
最后更新于