我的博客

8 月 14 日面试

目录
  1. 大数据
  2. Linux
  3. 网络
  4. 代码

大数据

Hadoop 系列有哪些组件

MapReduce 的原理,Shaffle 的具体过程

如何处理数据倾斜,如商品点击数统计,可能会集中在某些城市

认为大数据领域的挑战,需要什么能力。

Linux

如何显示某目录下的所有文件(排除目录)并按大小排序

ls -lhS | grep -v ^d

如何排查CPU占用过高的进程,如何在进程运行的过程中定位有问题的代码。

网络

TCP 与 UDP 的区别,TCP 三次握手的过程。

代码

给出40 亿个数,最大数字不超过 19 亿。在给出 n 个数字,判断这 n 个数字是否有重复。

使用 bitmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream> 

using namespace std;
const size = 1900000000;
int main() {
int *bitmap = new int[size / 32 + 1];

int n = size;
//cin >> n;
int i = 1;
while (n --) {
int m = i++;
int id = m / 32;
int pos = m % 32;
bitmap[id] = bitmap[id] | (1 >> pos);
}

cin >> n;
while (n--) {
int m;
cin >> m;
int id = m / 32;
int pos = m % 32;
bool result = (bitmap[id] & (1 >> pos)) > 0;
}

}

评论无需登录,可以匿名,欢迎评论!