1、给一组数,其中只有一个数是重复了奇数次,其余都重复了偶数次,如何找出奇数次的那个数
异或运算,复杂度O(n)
int x = a[0];
for(int i = 1; i < a.leght; i++){
x = x ^ a[i];
}
System.out.println(x);
2,上千万条记录,统计出重复记录最多的前N条
内存用Hash表
数据Select top 10 A from TB group by A order by(count(A))
数据结构中的hash表,不是java中的Hash表
key1 ------ v1,v2,v3
key2 ------ v1,v2,v3,v4
key3 ------ v1,v2
key4 ------ v1
3、一个N个整数的无序数组,给你一个数sum,求出数组中是否存在两个数,使他们的和为sum
Hash表,复杂度O(n)
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
int sum = 65;
int key = 0;
for(int i = 0; i < a.length; i++){
key = sum - a[i];
map.put(a[i],a[i]);
if(map.contain(key)){
System.out.println(key + ":" + a[i]);
}
}
1283

被折叠的 条评论
为什么被折叠?



