![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
baidu20008
这个作者很懒,什么都没留下…
展开
-
腾讯面试题之整数二进制替换
题目:对于某个int型的整数,将其二进制表示的001替换为011解题思路:该题为tencent面试题。能够想到的思路是讲int型数与7进行与操作,若结果为1,则进行替换,否则进入下次比较。由于int型整数A负数可能性的存在,故而不能使用将A进行右移(一般编译器对于有符号的数据的右移操作为算术移位,即最高位补最高位的拷贝,例如:负数A=0xffffffffc为-4,那么A>>1,则为原创 2013-08-28 20:54:46 · 1991 阅读 · 0 评论 -
这里实现定界加锁线程安全的单例模式
具体实现代码为:#include#includeclass CLockGuard{public: CLockGuard(pthread_mutex_t* lock):m_LGLock(lock),owner(false) { GetLock(m_LGLock); } void GetLock(pthread_mutex_t* lock) { pthread_mut原创 2014-07-28 23:32:17 · 794 阅读 · 0 评论 -
二进制与三进制在it笔试面试中的妙用
先来思考几个问题,并不难,各位大牛应能秒杀:1. 小明是个卖苹果的,小红一次在小明那买N(N2. 有16种溶液,其中有且只有一种是有毒的,这种有毒的溶液与另一种试剂A混合会变色,而其他无毒溶液与A混合不会变色。已知一次实验需要1小时,由于一次混合反应需要使用1个试管,问最少使用多少个试管可以在1小时内识别出有毒溶液?3. 27个小球。其中转载 2014-04-22 10:09:49 · 1484 阅读 · 0 评论 -
找出1-100中缺失的两个数
题目:有一个数组 int array[100];本来应该存放的数为1~100,但是有两个数据a,b丢失了,值变成了0。问如何找出丢失的那两个数?附带条件不能开辟额外的空间。解题思路:常见的两种解法有:1.计算a+b和a*b的值,然后在解方程求解(但是这样会使得中间某个变量过大)。2.使用bit位来标记。占用13个字节。第二种方法使用了额外空间,第一种可能会造成整型溢出。这里考虑转化为熟悉的方法原创 2014-03-25 20:50:22 · 7133 阅读 · 0 评论 -
求最大子段和
求最大子段和的扫描算法中,并不能成立数组中元素全为负数的情况。这里要进行单独处理,我们可以将负数的处理判断和for循环放在一起进行处理,提高效率。原创 2014-04-19 10:09:45 · 791 阅读 · 0 评论 -
给你一个字符串,把连续出现的相同字符串变成只出现一次
题目:给你一个字符串,把连续出现的相同字符串变成只出现一次。比如:aaabbccc解析思路:原创 2014-04-17 19:28:51 · 2993 阅读 · 0 评论 -
不使用itoa或sprintf等系统函数完成整型向字符串的转换
题目:问在不使用itoa或sprintf等系统函数的情况下,如何实现整型向字符串的转换?解题思路:思路相对简单。首先判断正负,若为负数则记录‘-’号。然后从低位逐个向高位进行转化。但这一方法的确定就是在转换完之后要颠倒除了符号之外的字符串。另外一种方法是直接在进行转换的时候,字符串颠倒记录。但这样也有缺点,会造成轻微的内存泄露。使用全局变量能够解决这一缺陷。先使用unsigned int来原创 2013-11-26 20:25:21 · 1523 阅读 · 0 评论 -
不使用加号,完成整数的相加
题目:要求不使用基本四则运算的加法即不能使用‘+’,完成两个整数的相加解题思路:在不能使用加法的情况下,想办法模拟出加法操作的步骤,从而完成整数相加操作。两个数a和b相加,其结果可以分离为进位和不进位的结构相加。只要能够计算出进位结果和没进位的结果,然后递归调用相加就能够达到题目要求。c语言中的位操作中,a&b可以取出两方都是1的位,这实际上就是进位。而a^b则能够取出一方为一,一方为原创 2013-10-30 20:22:26 · 2499 阅读 · 0 评论 -
实现地址对齐的内存分配函数
要求:实现一个地址对齐的内存分配函数解题思想:对于要分配bytes字节的内存,要求地址对齐到alignedment。将内存分配空间增大alignedment,为后续对齐预留空间。然后进行地址对齐,将分配内存的真正地址,存放在对齐后的地址的前一个point位置处。注意边界情况的考虑。当然还有一种实现方式就是在对齐指针的前一个int处存放真正地址到对齐地址的距离,在aligned_free时再讲真原创 2013-10-24 21:55:14 · 2442 阅读 · 0 评论 -
这里实现一个基于数组的线程安全的循环队列
具体代码如下:#include#includeusing namespace std;#define QUEUESIZE 128templateclass ThreadSafeQueue{private: pthread_mutex_t m_lock; int m_front; int m_rear; object m_data[QUEUESIZE];public:原创 2014-07-30 23:32:13 · 2496 阅读 · 3 评论