`
mtnt2008
  • 浏览: 363872 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

百度面试题

阅读更多

 

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]);
    }
}
 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics