摘要: /************************************************************************//*栈的push、pop 序列题目:输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序。为了简单起见,我们假设push 序列的任意两个整数都是不相等的。比如输入的push 序列是1、2、3、4、5,那么4、5、3、2、1 就有可能是一个pop 系列。因为可以有如下的push 和pop 序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,这 阅读全文
posted @ 2011-11-24 11:14 refazy 阅读(2104) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************//*在从1 到n 的正数中1 出现的次数题目:输入一个整数n,求从1 到n 这n 个整数的十进制表示中1 出现的次数。例如输入12,从1 到12 这些整数中包含1 的数字有1,10,11 和12,1 一共出现了5 次。*//************************************************************************/#include <iostream>using namespace 阅读全文
posted @ 2011-11-23 16:44 refazy 阅读(273) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************//*整数的二进制表示中1 的个数题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2*//************************************************************************/#include <iostream>using namespace std;int NumberOfOne(int n)//算法原理:十进 阅读全文
posted @ 2011-11-23 16:01 refazy 阅读(257) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************//*跳台阶问题题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。求总共有多少总跳法,并分析算法的时间复杂度。思路:其实就是一个Fibonacci数列求解f(n)=f(n-1)+f(n-2);n>2;本题的时间复杂度为O(n)*//************************************************************************/#include <iostream>us 阅读全文
posted @ 2011-11-23 15:14 refazy 阅读(424) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/metasearch/article/details/4428865 阅读全文
posted @ 2011-11-23 14:54 refazy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************//* 左旋转字符串题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef 左旋转2 位得到字符串cdefab。请实现字符串左旋转的函数。要求时间对长度为n 的字符串操作的复杂度为O(n),辅助内存为O(1)。 *//*****************************... 阅读全文
posted @ 2011-11-23 14:28 refazy 阅读(174) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************//* 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr 所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,outputstr 所指的值为123456789*//********* 阅读全文
posted @ 2011-11-22 16:39 refazy 阅读(1584) 评论(0) 推荐(0) 编辑
摘要: //链表反转http://www.2cto.com/kf/201110/106607.html//链表合并#include <iostream>using namespace std;struct LinkList{ int value; LinkList* next;};void CreatLinkList(LinkList* &head){ int n; if (!head) { cout<<"input nodes"<<endl; cin>>n; head=new LinkList; head->next= 阅读全文
posted @ 2011-11-22 14:20 refazy 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 关于memset的用法,常用于对于较大的结构体或数组进行清零操作//注意,是清零操作,如果进行统一赋值,要谨慎。void *memset( void *dest, int c, size_t count );函数将dest所指向的内存块全部以字节为单位,用c进行填充,函数第三个参数指定内存块的大小。char a[20];memset(a,0,sizeof(a)); 上述代码将a中的字符全部以0填充。对于清零初始化,一般不用出现错误使用,但是在一些统一赋初值的运算中,就有可能会出现下述错误情况。int a[5]; memset(a,1,sizeof(a));//这里改成memset(a,1... 阅读全文
posted @ 2011-11-21 15:17 refazy 阅读(662) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>using namespace std;int length;void PrintSolution(int *flag){ for (int i=0;i<length;i++) { if (flag[i]==1) { cout<<i+1<<" "; } } cout<<endl;}void BagProblem(int m,int n, int *flag){ if (n<1||m<1) return; if (m<n) n=m; if (n==m) { flag[ 阅读全文
posted @ 2011-11-21 14:34 refazy 阅读(2168) 评论(0) 推荐(0) 编辑