【网易 - 计算机视觉岗】2018 线上笔试

2018.03.27:(19:30-21:30)参加网易线上笔试;(21:40-22:15)整理该博文第一版;

2018.03.28:补充选择题考点(凸函数,梯度下降)

==============================


第一步:网申(2019届,实习生)

笔试前几天会收到邮件,并附上对应的考试链接,如下图所示;


注意点:

1)需要带有摄像头的电脑,需要提前调试好;

2)考试时间2个小时;

3)题型:选择(15),编程(1),简答题(6);

4)做完一种题型(如,选择题)需要先提交才能继续做第一个题型;提交后不能再回去修改(谨慎);

5)考试过程中,不能离开当前页面,也就是说需要保持考试页面为当前活动窗口;


第二步:正式线上考试(计算机视觉岗位)


选择题考点:

1)二叉树(前序,中序,后序)、完全二叉树、二叉排序树、二叉树的节点;

2)最短路径:Dijkstra、Floyd;(最小生成树)Kruskal、Prim;

3)哈夫曼编码、哈希表开放地址(三种方法)、希尔排序;

4)边缘检测算子的计算复杂度:Roberts 、Sobel 、Prewitt、Laplacian、Log/Marr、Canny、Kirsch、Nevitia;

5)SVM:考了很多,如优缺点、核函数、哪些不是用SVM做分类;

6)矩阵计算的复杂度;找规律;

7)贪心算法:Dijkstra、Kruskal、Prim;非贪心算法:KMP,Floyd(动态规划);

8)凸函数的最优解问题;梯度下降问题;


编程题:

牛牛为了上课不迟到,调了N个闹钟(保证至少有一个闹钟能够让牛牛上课不迟到),牛牛只有听到闹钟响起的那一刻才会清醒并决定起不起床;已知:

1)牛牛调了N个闹钟以及闹钟对应的具体时间(小时和分钟);

2)牛牛从起床到上课教室需要花的时间记为,time;

3)牛牛第一节上课的时间(小时和分钟);

求解:牛牛最晚起床的时间。


分析:感觉第一题跟CCF-CSP的前两道题目的难度差不多,属于较简单题;但是由于是考试有时间限制,你需要腾出一定的时间来解决,特别是一些特殊情况,比如调试问题;本人今晚使用CCF-CSP指定的Dev-C++编译器,在本地编译通过,但是提交上去的时候却编译不过,甚是慌张。最后提交多次还需要输入验证码,而且验证码很模糊,所以充足的时间是必须的(我留了30分钟,险些不够用)。如下所示为本人当场写的代码,还有很多可以改进的,但由于是考试,先保证速度和准确率再说。

#include <iostream>
#include <fstream>

using namespace std;

#define MAX_NUM 101
int N;
int need_time;

struct x_CLOCK{
	int hour;
	int min;
};

x_CLOCK x_clock[MAX_NUM];
x_CLOCK class_time;
x_CLOCK result_clock;

void input(){
//	ifstream in_data;
//	in_data.open("./data.txt");
//	in_data >> N;
//	for(int i=0; i<N; i++){
//		in_data >> clock[i].hour;
//		in_data >> clock[i].min;
//	}
//	
//	in_data >> need_time;
//	in_data >> class_time.hour;
//	in_data >> class_time.min;

	cin >> N;
	for(int i=0; i<N; i++){
		cin >> x_clock[i].hour;
		cin >> x_clock[i].min;
	}
	
	cin >> need_time;
	cin >> class_time.hour;
	cin >> class_time.min;
}

void display(){
	cout<<N<<endl;
	for(int i=0; i<N; i++){
		cout<<x_clock[i].hour<<" ";
		cout<<x_clock[i].min<<endl;
	}
	cout<<need_time<<endl;
	cout<<class_time.hour<<" "<<class_time.min<<endl;
}

int excute(){
	
	// time operation
	x_CLOCK latest_time;
	latest_time.hour = class_time.hour;
	latest_time.min = class_time.min;
	
	// - need_time
	if(latest_time.min < need_time){
		latest_time.hour -= 1;
		latest_time.min += 60;
		latest_time.min -= need_time;
	}else{
		latest_time.min -= need_time;
	}
//	cout<<latest_time.hour<<" "<<latest_time.min<<endl;
	
	// judge
	int target_clock_index;
	result_clock.hour = 0;
	result_clock.min = 0;
	for(int i=0; i<N; i++){
		
		if(x_clock[i].min < latest_time.min){
			x_clock[i].hour -= 1;
			x_clock[i].min += 60;
		}
		
		// satisified
		if((x_clock[i].hour<latest_time.hour) || (x_clock[i].hour==latest_time.hour && x_clock[i].min<=latest_time.min)){
			// get min
			// cout<<clock[i].hour<<" "<<clock[i].min<<endl;
			bool case1 = (result_clock.hour < x_clock[i].hour);
			bool case2 = (result_clock.hour == x_clock[i].hour && result_clock.min < x_clock[i].min);
			if(case1 || case2){
				// update
				result_clock.hour = x_clock[i].hour;
				result_clock.min = x_clock[i].min;
				
				if(result_clock.min>=60){
					result_clock.min -= 60;
					result_clock.hour += 1;
				}
			}
		}
		
	}
	
	cout<<result_clock.hour<<" "<<result_clock.min<<endl;
}

int main(){
	
	input();
	// display();
	excute();
	
	return 0;
}

问答题考点:

1)给定一个场景,让你说说如何在保证泛化能力的条件下,同时也保证准确率;

(题目回忆)
一个30分类的数据集(关于花),每个类别有20张训练集

我当场想到的就只有:1)迁移学习;2)数据扩充;

2)GAN:基本概念;Loss;GAN之所以难以训练的原因是什么?

3)Smooth L1 Loss,L2 Loss的基本概念;在Fast RCNN中为什么使用L1 Loss对bounding-box进行回归;

4)Fast RCNN,Mask RCNN:RoI pooling 与 RoI align的区别;

5)给出一个表达式 { x^4 - 4x^3 + x^2 + 10 },让你用计算机求解该问题,写出推导过程;

6)结合当前facebook事件:在数据分析的角度列出可能提取用户哪些数据;(选举场景)如果换成是你,你会怎样设计模型;

猜你喜欢

转载自blog.csdn.net/Houchaoqun_XMU/article/details/79719784
今日推荐