2013年9月9日
摘要: 以后慢慢启用个人博客:http://www.yuanrengu.com 位运算 位运算是把数字用二进制表示之后,对每一位上0或者1的运算。 理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。在程序员的圈子里有一个流传了很久的笑话,说世界上有1 阅读全文
posted @ 2013-09-09 22:36 猿人谷 阅读(4903) 评论(2) 推荐(4) 编辑
摘要: 反转一个无符号整数的比特位.Reverse the bits of an unsigned integer.For example, x is 0x00001234, then reverse(x) is 0x2C480000.static uint Reverse(uint x){ uint y = 0; for (int i = 0; i >= 1; } return y;}删除数组中的重复元素void remove_duplicate(int *a, int len){ int i = 0; int j = 0; for (j = 0; j 0 && key > 阅读全文
posted @ 2013-09-09 16:27 猿人谷 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。函数的声明如下:void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted);分析:这是一道广为流传的Google面试题,能有效考察我们的编程基本功,还能考察我们的反应速度,更重要的是,还能考察我们对时间复杂度的理解。注意函数的第一个参数pListHead是一个指向指针的指针。例如,当我们往一个空链表中插入一个结点时,新插入的结点就是链表的头指针。由于此时会改动头指针,因此必须把pHead参数设为指向指针的指针,否则出了这个函数pHead仍然是一个空指针。在链表中删除一 阅读全文
posted @ 2013-09-09 11:48 猿人谷 阅读(784) 评论(0) 推荐(0) 编辑