1.2 腾讯求职攻略-理工科版本

1.2.1 校园招聘时间流程

网申

机考

面试

offer

7月-10月

8月-10月

9月-12月

10月-1月

1.2.2 薪资爆料

岗位

地点

学历

薪资范围(年薪)

Java

北京

本科

16-20K * 16薪

前端工程师

西安

本科

150-300元/天

腾讯音乐推荐平台开发暑期实习

深圳

硕士

250-400元/天

腾讯音乐推荐算法工程师

深圳

本科

250-400元/天

AILab-算法工程师

深圳

硕士

300-500元/天

*数据来源 牛客用户,更多详细信息可到牛客查询

1.2.3 面试真题

1、队列操作

【题目描述】

数据结构基础之一——队列

队列有五种基本操作,插入队尾、取出队首、删除队首、队列大小、清空队列。

现在让你模拟一个队列的操作,具体格式参考输入。

输入描述:

第一行输入一个整数T,表示接下来有T组测试数据。

对于每组测试数据:

第一行输入一个整数Q,表示有Q次操作。

接下来Q行,每行输入一种队列操作方式,具体格式如下:

初始状态下队列为空。

插入队尾:PUSH X

取出队首:TOP//仅仅是看一下队首元素,不要把队首元素删除

删除队首:POP

队列大小:SIZE

清空队列:CLEAR

1<=T<=100

1<=Q,x<=1000

保证操作为以上5种的任意一种。

输出描述:

对于每组测试数据:

如果操作为“取出队首”,输出队首元素,如果无法取出,输出“-1”

如果操作为“删除队首”,如果无法删除,输出“-1”

如果操作为“队列大小”,输出队列大小

其他操作无需输出

输入样例:

2

7

PUSH 1

PUSH 2

TOP

POP

TOP

POP

POP

5

PUSH 1

PUSH 2

SIZE

POP

SIZE

输出样例:

1

2

-1

2

1

【解题思路】

按题意描述的根据队列操作进行模拟即可。

【参考代码】

#include <bits/stdc++.h>

using namespace std;

int main() {

int t;

scanf("%d", &t);

while (t--) {

int Q, x;

cin >> Q;

queue<int> q;

while (Q--) {

string s;

cin >> s;

if (s == "PUSH") {

scanf("%d", &x);

q.push(x);

}

if (s == "TOP") {

if (!q.empty())

printf("%d\n", q.front());

else

printf("-1\n");

}

if (s == "POP") {

if (!q.empty())

q.pop();

else

printf("-1\n");

}

if (s == "SIZE") {

printf("%d\n", q.size());

}

if (s == "CLEAR") {

while (!q.empty())

q.pop();

}

}

}

return 0;

}

2、第K小子串

【题目描述】

输入一个字符串 s,s 由小写英文字母组成,保证 s 长度小于等于 5000 并且大于等于 1。在 s 的所有不同的子串中,输出字典序第 k 小的字符串。

字符串中任意个连续的字符组成的子序列称为该字符串的子串。

字母序表示英文单词在字典中的先后顺序,即先比较第一个字母,若第一个字

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024校招宝典——软件版本 文章被收录于专栏

牛客独家出品,理工科求职必备攻略,适合岗位: 软件开发、数据库分析、软件测试、前端后端开发

全部评论

相关推荐

SinyWu:七院电话面的时候问我有没有女朋友,一听异地说你赶紧分。我:???
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务