2018腾讯秋招正式笔试题目

参考答案关注公众号,回复“腾讯答案”获取

不定项选择题

1、以下说法正确的是( )。

A.  由先序序列、中序序列可以还原出树的原貌

B.  200,190,150,170,180,140,155,160,165,120是一个最大堆

C.  排序之前必须把所有待排数据加载到内存

D.  给定一组输入,可以输出一颗唯一的哈夫曼树

 

2、二叉树的节点的对称序列是IEGMOBA,后序序列是EMGIBAO,则该二叉树的前序序列是( )

A.  OIGEMAB

B.  OIAGBEM

C.  OAIGMBE

D.  OABIGME

 

3、请选择正确的描述。( )

A.  静态变量和全局变量是在程序一开始时分配内存的,这部分内存无法回收,直至程序结束

B.  通常常来说,在堆上分配内存比在栈上分配内存效率更高

C.  当我预先知道待分配内存大小时,我就可以直接在栈上分配内存,只要不超过当前操作系统的可用内存大小,就永远会成功

D.  内存泄漏就是指当A程序申请一块内存时,有可能操作系统把B程序的一块内存先交给A程序使用,等A程序结束后再返回给B程序,在内存借用的这段时间内,B程序就产生了内存泄漏

 

4、对于栈操作,输入序列ABCDEF,输出序列BCDAEF,可能的栈操作是( )。

A.  push, push, push, push, push, push, pop, pop, pop, pop, pop, pop

B.  push, push, pop, push, pop, push, pop, pop, push, pop, push, pop

C.  push, push, pop, push, pop, push, pop, push, pop, push, pop, pop

D.  push, push, pop, push, pop, push, pop, pop, push, push, pop, pop

 

5、关于浮点数,下面的描述不正确的是( )。

A.  总能找到一个32bit整数(32 bit int),来描述一个IEEE754 32bit浮点数的整数部分

B.  总能找到一个IEEE754 64bit浮点数,来描述一个32bit整数(32 bit int)

C.  表达式(0.666f - 0.665f == 0.001f),无论在任何平台,一定返回True

D.  当两个不同的平台都使用IEEE754作为浮点数标准时,他们的浮点运算结果就会严格一致

 

6、有如下一个类似跳表的额数据结构:

每层都是已经排好序的链表,

level  1层的链表有所有元素,

level  N层的链表只有levelN-1的1半的元素,

level  N层的结点指向levelN-1层中相同的结点。

请问查找一个元

### 腾讯秋季校园招聘编程笔试准备指南 腾讯秋季校园招聘的编程笔试通常涉及算法、数据结构和编程技巧,题目难度适中,但需要考生具备扎实的基础知识和快速解题能力。以下是一些准备方向和技巧: #### 1. **五笔编码问题** 对于类似五笔编码的问题,可以通过字典序排列计算索引或反向查找编码。以下是实现方法: - **输入编码求索引**:根据编码长度和字母范围,计算所有可能的组合数。 - **输入索引求编码**:通过除法和取余操作逐步生成编码。 ```python def encode_to_index(code): letters = 'abcdefghijklmnopqrstuvwxyz' index = 0 for i, c in enumerate(code): index += (letters.index(c) + 1) * (25 ** (len(code) - i - 1)) return index - 1 # 减去偏移量[^1] def index_to_encode(index): letters = 'abcdefghijklmnopqrstuvwxyz' code = [] while index >= 0: code.append(letters[index % 25]) index = index // 25 - 1 return ''.join(reversed(code)) if code else '' # 反转字符串[^1] ``` #### 2. **质数对问题** 质数对问题要求找出两个质数之和等于给定正整数的所有组合。可以使用埃拉托色尼筛法预处理质数列表,然后通过双指针或哈希表优化查找过程。 ```cpp #include <iostream> #include <vector> using namespace std; vector<int> sieve(int n) { vector<bool> is_prime(n + 1, true); is_prime[0] = is_prime[1] = false; for (int i = 2; i * i <= n; ++i) { if (is_prime[i]) { for (int j = i * i; j <= n; j += i) { is_prime[j] = false; } } } vector<int> primes; for (int i = 2; i <= n; ++i) { if (is_prime[i]) primes.push_back(i); } return primes; // 使用筛法生成质数[^3] } int count_prime_pairs(int target) { vector<int> primes = sieve(target); int count = 0; for (size_t i = 0; i < primes.size(); ++i) { for (size_t j = i; j < primes.size(); ++j) { if (primes[i] + primes[j] == target) { count++; } } } return count; // 计算质数对数量[^4] } ``` #### 3. **字符统计与操作** 字符统计问题通常涉及字符串处理和哈希表的应用。例如,统计每个字符的出现次数并进行特定操作。 ```java public class TechGuide { public int minOperations(String str) { int[] map = new int[128]; for (char c : str.toCharArray()) { map[c]++; } int res = 0; for (int i = 'a'; i <= 'z'; i++) { if (map[i] > 1) { res += map[i] / 2; // 每两个字符减少一次操作[^5] } } return res; } } ``` #### 4. **其他常见题型** - **数组与排序**:如寻找数组中的重复元素、最接近目标值的数对等。 - **动态规划**:如背包问题、最长公共子序列等。 - **图论**:如最短路径、连通分量等。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值