递归算法(求n的加法组合,将一个整数拆分成多个整数相加的形式, O(N)时间,O(N)空间)4.0版

网上的多种解法比较复杂,本文用递归方法,22行代码搞定。时间和空间复杂度已经降到最低!   //n give the sum of a list,and start give the first number of the list void f(int n,list& list1,int...

2012-09-27 11:50:31

阅读数 9208

评论数 9

sizeof作用在struct和union上的情况,经典解答

请牢记以下3条原则:(在没有#pragma pack宏的情况下) 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开...

2012-09-22 22:02:58

阅读数 1402

评论数 0

判断栈的出栈和入栈序列O(N)时间O(N)空间

给出一个序列式栈的入栈序列,但是在入栈的过程中可能会有元素出栈,问最后的出栈序列是否可能出现 ,思路就是你想的那样。不再赘述,实在打字麻烦,看代码页很容易看的。就不写了。 void init_queue(queue& q , const int a[],const int n) { ...

2012-09-20 18:31:50

阅读数 2798

评论数 0

删除字符串中的某些字母O(N)时间O(1)空间

这个方法是用了hash方法,将要删除的字母先用数组下表表示,如果要删除,则标记为1.不需要删除的标记为0 这个方法在删除元素的时候比较巧妙,它对要删除的字符并不主动删除,而是将空间留在那里,让后面不需要被删除的字符去覆盖。 具体实现如下: string& f(string& ...

2012-09-20 15:16:06

阅读数 1222

评论数 0

打印螺旋矩阵

总结上面的规律,从1开始赋值,并打印。其方向按照右,下,左,上,右,下。。。。。。的次序输出,每次输出一个方向;在一个方向上线段的长度符合1,1,2,2,3,3,4,4,。。。。。的规律。输入n表示矩阵的行数,也是列数。用pair表示方向,(x,y)表示矩阵的小标。 //输出一个螺旋队列 vo...

2012-09-08 17:51:02

阅读数 1297

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭