1、数组中不重复的数只有一个,并找出
思路 :初始化一个值 int a = 0; 遍历数组每个 item^a ;最后a的值就是不重复的值
时间 O(n) ,空间S(1)
2、数组中不重复的数大于一个,
思路 :遍历数组,使用map记录数字出现的次数;再遍历map,找出次数为1的数
时间 O(n) ,空间S(n)
3、找出第一个不重复的数
思路:1、两层for循环 O(n*n)
```
for (int i = 0; i < count; i++) {
for (int j =0;j <count ;j++){
if (i!=j && a[j]==a[i]) {
return j;
}
}
if j = a.count -1 return 没找到;
}
2、第一次遍历数组,使用map记录记录每个元素的个数 map[value] ++;
第二次遍历,找到 第一个map[value] == 1的元素
```
for (value in a) {
map[value] ++;
}
for (value in a) {
if (map[value] == 1) {
return value;
}
}
O(n) S(n)
4、数组中找到第一个重复的数字
思路:遍历数组,存入字典 map[value] ++;如果map[value] 包含这个数据说明已经存在
网友评论