今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有。大题如下:
- 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code)。请编写一个函数,使用递归方法生成N位的格雷码,并且保证这个函数的健壮性。
2. 有下图的题解,请用C/C++代码来列出满足下图0-100内的所有答案。
3. 如图所示,系统中有三个进程Producer,Transmitter和Consumer。Producer和Transmitter共用缓冲区ProduceBuf,Consumer和Transmitter共用缓冲区ConsumeBuf。
Producer进程负责不断地将输入信息送入ProduceBuf;Transmitter进程负责从ProduceBuf中取出信息进行处理,并将处理结果送到ConsumeBuf;Consumer进程负责从ConsumeBuf中读取结果并输出。
假设ProduceBuf中最多可放12个信息,现已放入了3个信息;ConSumeBuf最多可放6个信息。试写出正确实现进程Producer,Transmitter和Consumer的同步与互斥的算法
(要求:用类C语言描述,条理清楚,注释恰当;)
4. 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
时间: 2024-12-28 10:49:00