做暧小说在线观看网站,上海网络整合推广,wordpress cdn注意事项,学校网站建设要点初级#xff1a; 审题#xff1a; 需要输出只出现了一次的数据#xff0c;其他数据均出现了两次 思路#xff1a; 若不限制空间复杂度#xff1a; 方法一#xff1a;哈希表 用哈希映射循环一次#xff0c;把对应数字出现的次数记录到数组里面#xff0c;然后再遍历一次…初级 审题 需要输出只出现了一次的数据其他数据均出现了两次 思路 若不限制空间复杂度 方法一哈希表 用哈希映射循环一次把对应数字出现的次数记录到数组里面然后再遍历一次哈希表把次数为1的数据输出 但是这里限制了空间复杂度所以我们利用异或运算来实现 方法二异或运算 由于异或运算有如下三个特性所以我们使用异或运算来实现 1.任何数与0进行异或运算得到的结果都是该数本身 2.任何数自身与自身进行异或运算得到的结果都是0 3.异或运算满足交换律与结合律即 a⊕b⊕ab⊕a⊕ab⊕(a⊕a)b⊕0b 由3可知无论该数组中数据排序如何我们都可以视为他们是两个部分出现两次部分与出现一次部分。 由2可知我们的出现两次部分通过异或运算可以消掉 由于1我们一开始用0为初始值所以对整个数组元素依次进行运算最后的结果就是0⊕answer answer。answer就是只出现一次的数据 解题 136. 只出现一次的数字 - 力扣LeetCode