字节跳动2018校招后端方向(第四批)
时长:120分钟 总分:100分
197浏览 0人已完成答题
题型介绍
题型 | 填空题 | 简答题 |
---|---|---|
数量 | 3 | 2 |
附加题
A. 如果访问过当前房间 i 偶数次,那么下一次移动到房间i+1;
B. 如果访问过当前房间 i 奇数次,那么移动到房间pi;
现在路人甲想知道移动到房间n+1一共需要多少次移动;
输入描述: 第一行包括一个数字n(30%数据1<=n<=100,100%数据 1<=n<=1000),表示房间的数量,接下来一行存在n个数字 pi(1<=pi<=i), pi表示从房间i可以传送到房间pi。输入样例: 2 1 2 输出描述: 输出一行数字,表示最终移动的次数,最终结果需要对1000000007 (10e9 + 7) 取模。输出样例 4
以下函数用于将一颗二叉搜索树转换成一个有序的双向链表。要求不能创建任何新的...
以下函数用于将一颗二叉搜索树转换成一个有序的双向链表。要求不能创建任何新的节点,只能调整树种节点指针的指向。
如输入下图中左边的二叉搜索树,则输出转换后的排序双向链表:
10
/ \
6 14
/ \ / \
4 8 12 16
转换成:
4 <=> 6 <=> 8 <=> 10 <=> 12 <=> 14 <=> 16
请指出程序代码中错误的地方(问题不止一处,请尽量找出所有你认为错误的地方):
1 #include <stack>
2 using namespace std
3
4 struct TreeNode {
5 int val
6 TreeNode *left, *right
7 }
8
9 TreeNode* Convert(TreeNode* root){
10 if (root == NULL)
11 return root
12
13 TreeNode* listHead = NULL
14 TreeNode* listLastNode = NULL
15
16 stack<TreeNode*> s
17 while(root){
18 while(root){
19 root=root->left
20 s.push(root)
21 }
22 root=s.top()
23 s.pop()
24 if (listHead == NULL){
25 listHead = root
26 }else{
27 listLastNode->right = root
28 }
29 listLastNode = root
30 root= root->right
31 }
32 return listHead
33 }
对于广告投放引擎, 广告库索引服务是基础服务,每次广告请求会从广告索引中找...
对于广告投放引擎, 广告库索引服务是基础服务,每次广告请求会从广告索引中找出匹配的广告创意列表。假设每一次请求会携带 地域、运营商、设备机型、网络接入方式 等信息,每个广告策略都可以设置 地域、运营商、设备机型、网络接入方式 的投放定向(即只能投放到定向匹配的请求, 比如只投放特定地域)。每个广告策略下包含N(N>=1)个广告创意。设计一个广告库索引模块, 需要支持以下几点:
1. 支持多线程广告请求可以快速的找到匹配的所有广告创意
2. 支持广告库数据的热更新
3. 支持十万级广告策略,百万级广告创意
4. 支持高并发请求
请给出广告库索引服务整体系统设计以及所使用到的数据结构设计;
编程题1
接下来的t行每行包括四个数字 n, k, d1, d2(1 <= n <= 10^12 0 <= k <= n, 0 <= d1, d2 <= k)输入样例: 2 3 3 0 0 3 3 3 3 输出描述: 每行的比分数据,最终三只球队若能够打平,则输出“yes”,否则输出“no”输出样例 yes no