商汤科技2018校招C /算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第一场

时长:120分钟 总分:100分

211浏览 0人已完成答题

题型介绍
题型 单选题 判断题 填空题
数量 5 5 3
1.
在TCP/IP协议集中,应用层的各种服务是在传输层所提供服务的基础上实现的...
问题详情

TCP/IP协议集中,应用层的各种服务是在传输层所提供服务的基础上实现的,哪些应用层协议需要使用传输层的TCP协议建立连接?




2.
一个数据表student(No, Name, Sex, Age, Dept...
问题详情

一个数据表student(No, Name, Sex, Age, Dept),以下不能完成对应操作的sql语句是?




3.
⼀个完全⼆叉树中有743个节点, 则该⼆叉树中的叶子节点个数为?
问题详情




4.
硬盘上有2GB数据(每项为一个无符号64位整型),若想找出其中最大的前50...
问题详情

硬盘上有2GB数据(每项为一个无符号64位整型),若想找出其中最大的前500MB数据,在只能使用512MB内存的前提下,下列算法最适合的是?




5.
在一所中学,32%的学生踢足球,18%的学生踢足球且打篮球。如果该学校的一...
问题详情

在一所中学,32%的学生踢足球18%的学生踢足球且打篮球。如果该学校的一名学生踢足球,那么他也打篮球的可能性是?




6.
ABC三个组分别有2个、3个和5个人,三组一起出去团建,坐在一个圆桌吃饭,...
问题详情

ABC三个组分别有2个、3个和5个人,三组一起出去团建,坐在一个圆桌吃饭,为了彼此熟悉,要求同组人不能邻座,共有()种排坐位的方法。
7.
已知某实验室的100瓶试剂中有一瓶毒药,其余试剂无毒,混入任何剂量该毒药的...
问题详情

已知某实验室的100瓶试剂中有一瓶毒药,其余试剂无毒,混入任何剂量该毒药的溶液均可致死。现有无限量的白鼠供应,所有白鼠从摄入毒药至毒发身亡需要的时间相同。若需要在最短时间内找出毒药,则至少需要()只白鼠。
8.
第三幅图为:[$##$]
问题详情

791307wfm.jpg
第三幅图为:()
9.
给定数组 [ 20,9,45,28,73,92,38 ] ,构造一棵 左子...
问题详情

给定数组 [ 20,9,45,28,73,92,38 ] ,构造一棵 左子节点 < 父节点 < 右子节点 的二叉搜索树(Binary Search Tree)。把数字45删除,使用前序节点调整后,查询数字38需要()次。
10.
请阅读以下代码和输入,写出程序的输出结果。 代码: #incl...
问题详情

请阅读以下代码和输入,写出程序的输出结果。
代码:
#include<iostream>
#include<string>
using namespace std

const int MAX_SIZE = 1000
int n, m, k
int a[MAX_SIZE][MAX_SIZE]
int sum

void dfs(int  x,  int  y) {
	++sum
	a[x][y] = 1
	if ((x > 1) && (a[x-1][y] == 0)) dfs(x - 1, y)
	if ((y > 1) && (a[x][y-1] == 0)) dfs(x, y - 1)
	if ((x < n) && (a[x+1][y] == 0)) dfs(x + 1, y)
	if ((y < m) && (a[x][y+1] == 0)) dfs(x, y + 1)
}


int main( ) {
	memset(a, 0, sizeof(a))
	cin >> n >> m >> k
	for(int i = 1 i <= k ++i) {
		int x, y
		cin >> x >> y
		a[x][y] = 1
	}
	int ans = 0, ansp = 0
	for (int i = 1 i <= n ++i)
		for (int j = 1 j <= m ++j)
			if (a[i][j] == 0) {
				++ansp
				sum = 0
				dfs(i, j)
				if (ans < sum) ans = sum
			}
	cout << ans << " " << ansp << endl
	return  0
}

输入:

10 10 10

4 1

5 2

6 3

7 2

8 1

1 7

2 7

3 8

4 9

5 10

输出:()
11.
最小区间
问题详情

给定k个有序数组, 每个数组有个N个元素,找出一个最小的闭区间,使其包含每个数组中的至少一个元素。 
给定两个区间[a,b], [c,d]: 
如果 b-a < d-c,则认为[a, b]是更小的区间;
如果 b-a == d-c,且a < c,则认为[a, b]是更小的区间。
输入描述: K
N
x11 x12 x13 ... x1n
...
xk1 xk2 xk3 ... xkn输入样例: 3 3 2 12 14 2 6 9 4 7 19 输出描述: 两个数,分别为最小区间的左右边界输出样例 2 4
12.
合并果子
问题详情

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了N堆。果园是一个二维平面,第i堆果子的位置为(Xi,Yi),重量为Wi

多多决定把所有的果子合成一堆。每一次合并,多多可以消耗Wi (|X- Xj |+|Y- Yj |)的体力把第i堆果子合并到第j堆。可以看出,所有的果子经过N-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

请你求出将所有果子合并成一堆消耗的总体力最少是多少。

输入描述: 第一行一个正整数N,接下来N行每行三个正整数 Xi Yi Wi输入样例: 4 2 1 1 1 2 3 3 1 2 2 4 2 输出描述: 一个数,最少消耗的总体力输出样例 14
13.
狙击手
问题详情

N个狙击手在进行生死搏斗,每位狙击手各瞄准了一个目标,一旦开枪就会将被瞄准的目标消灭,被消灭的狙击手无法再开枪。已知任意两个狙击手不会同时开枪,但不知道他们的开枪顺序,所以无法确定最后哪些狙击手会存活下来。
请你求出最少可能存活多少个狙击手,最多可能存活多少个狙击手。
输入描述: 第一行一个正整数N 接下来一行N个正整数,第i个数字Ti表示第i个狙击手瞄准了第Ti个狙击手,注意可能存在Ti=i输入样例: 8 2 3 2 2 6 7 8 5 输出描述: 两行,第一行是最少存活的狙击手的数量,第二行是最多存活的狙击手的数量输出样例 3 5