力扣数组136题:找出只出现一次的数字
1、数组2(长度为n)放进数组(长度为m+n)中:(昨天的题)
nums1[m:] = nums2 //直接将nums2放进nums1剩下的空间里
2、set集合
- set集合特性:元素无序,不重复(用这个特性可以用集合将数组去重)
- 创建一个空集合:set()
- 集合没有下标,不能用下标遍历集合中的元素,但是可以直接遍历集合中的元素
set =(2,5,6,7,3,4)
for i in set:
print(i)
输出:
- -往set()中添加元素:set.add()、set.update(元素、列表、字典等)
- 从set()中移除元素:set.remove()、set.discard()
- 集合1中有但是集合2中没有的:set1-set2
- 集合1和集合2共有的:set1&set2
- 集合1和集合2没有同时出现的:set1 | set2
3、用hashmap统计数组中每个元素出现的次数
hash = {}
num =[1,2,3,3,2,4,4]
for i in num:
hash[i] = 1 + hash.get(i,0)
print(hash)
输出:
4、输出出现次数为1的元素:
hash = {}
num =[1,2,3,3,2,4,4]
for i in num:
hash[i] = 1 + hash.get(i,0)
for i in hash:
if hash.get(i) == 1:
print(i)
输出 :
**5、**时间复杂度:看执行次数,忽略常量
空间复杂度:看使用空间,最小为1
6、位运算-异或
规则:
- n与n异或为0 - 0与异或为n - 1^1 =0 , 1 ^ 0 = 0, 0 ^ 0 =1,0 ^ 1 = 1



