1. 一个概率题:54张扑克牌,除去两张大小王剩下52张扑克牌。问红桃A和黑桃A同时被一个人拿到的概率是多少
2. 给一组数,其中只有一个数十重复了奇数次,其余都是重复了偶数次,如何找出奇数次的那个数
关键字:异或。result = 0, for i in 1 to n, result ^= num[i],最后result为所求。把所有的数异或,最后剩下的就是那个数了。
int[] arr = {1, 1, 1, 2, 2};
int result = arr[0];
for(int i = 1; i < arr.length; i++) {
result ^= arr[i];
}
System.out.println(result);
3. 上千万条记录,统计出重复记录最多的前N条。