C/C++
秋秋图图
这个作者很懒,什么都没留下…
展开
-
用位运算求两个整型数的平均值(避免溢出)
今天在CSDN上看了一个求两个数的平均值的算法:Avg = (ValueA & ValueB) + (ValueA ^ ValueB) >>1,这种方法避免了应用Avg=(ValueA+ValueB)/2时,ValueA+ValueB造成的溢出。 但是想了很久不知道其中的奥妙,后来在“盗月泉”的百度空间,一句“每个二进数都可以分解为各个位与其权的乘积的和”提醒了我,终于想明白原创 2014-04-20 19:40:32 · 1829 阅读 · 0 评论 -
C++中不应该返回局部变量的地址
在Effective C++中明确指出:不应该返回原创 2014-05-27 22:36:01 · 2387 阅读 · 3 评论 -
C/C++面试笔试中经典的字符串常量内存问题
C/C++中经常考得一类问题就是原创 2014-05-27 17:52:31 · 918 阅读 · 0 评论 -
浮点数的二进制表示
今天看到一篇文章,关于讲得太好了转载 2014-05-27 14:57:17 · 486 阅读 · 0 评论 -
笔试题:求子数组的最大和
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10,-4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。int maxSubarray(int a[], int size)转载 2014-06-26 16:02:59 · 476 阅读 · 0 评论 -
笔试题:设计包含min 函数的栈
题目:设计包含min 函数的栈。定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及pop 的时间复杂度都是O(1)。解答:开始的时候很容易想到一个方法就是在栈结构中增加一个变量用来记录当前栈中最小元素的值minData,这样在push的时候更新这个minData值,那么在min函数和push函数时间复杂度确实为O(1),但是有一个问题,在p原创 2014-06-26 15:29:09 · 401 阅读 · 0 评论 -
笔试题:二元查找树转变成排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14/ \ / \4 8 12 16转换成双向链表转载 2014-06-26 14:50:22 · 448 阅读 · 0 评论 -
笔试题:在二叉树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树10/ \5 12/ \4 7则打印出两条路径:10, 12 和10, 5, 7。二元树节点的数据结构定义为:原创 2014-06-26 17:28:54 · 648 阅读 · 0 评论 -
C语言中的算数转换和整形提升
C语言中经常会有类型转换,原创 2014-05-21 14:10:21 · 1052 阅读 · 0 评论 -
笔试题:给出一个函数来输出字符串的所有排列
给出一个函数来输出一个字符串的所有排列。题目:原创 2014-07-01 15:12:38 · 1741 阅读 · 0 评论