摘要: 无聊写了个单链表排序,不是很难。但是插入写起来很麻烦,都没有,本文全部是将链表中节点值互换,不改变结构,所以很容易写出来 #includeusing namespace std;struct node{ int n; struct node* next;};//创建链表void swap(int &a,int &b){ int c=a; a=b; b=c;}node*... 阅读全文
posted @ 2014-05-22 19:06 hansongjiang8 阅读(247) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;//大根堆,从小到达排序int a[101];void swap(int &a,int &b){ a=a^b; b=a^b; a=a^b; }void adjust(int *a,int root,int len){ int ma... 阅读全文
posted @ 2014-05-18 14:45 hansongjiang8 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 很有用O(n)内实现三类数字分离,以前大多是分成两类数据,快排中分成两类,还有就是“ab***vvvc” 在O(n)中变成 abvvc****,变成两类划分问题 #include#includeusing namespace std;const int N=1000;char c[N];int len; void swap(char &a,char &b){ //a=a^b; //... 阅读全文
posted @ 2014-05-17 20:33 hansongjiang8 阅读(185) 评论(0) 推荐(0) 编辑
摘要: d[n]=min(dp[n-1]+1,dp[n、2]); n为偶数dp[n]=dp[n-1]+1;答案为18怎么通过计算求得答案?#includeusing namespace std;int d[2014];int min(int x,int y){ if(x>y) return y; ... 阅读全文
posted @ 2014-05-15 12:52 hansongjiang8 阅读(224) 评论(0) 推荐(0) 编辑
摘要: dp[ i][j]=max(四个方向点)+1; 四个方向上的点应该存在,且大于i,j,表示以i,j开始的点最长路径,递归的结束条件不用判断,因为 dp[][]最大数位置肯定 直接结束,随后次大值肯定能结束,以此类推,所以可以执行,但自下而上动态规划不好写。因为要确定这些数的大小,麻烦。 #include#includeusing namespace std;int dp[101][101];i... 阅读全文
posted @ 2014-05-11 19:07 hansongjiang8 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题。 而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化为无穷大,除了0.问什么呢?看算法入门竞赛那本, 背包问题其实不是很好理解,但是代码最终形式很简单,我要学会将问题抽象出来e利用此方法求解 #include#includeusing namespa... 阅读全文
posted @ 2014-05-10 20:28 hansongjiang8 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 虽然不难,我却调了2个小时,手太生题目:4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条... 阅读全文
posted @ 2014-05-10 16:38 hansongjiang8 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 描述计算n!的十进制表示最后有多少个0输入第一行输入一个整数N表示测试数据的组数(1<=N<=100)每组测试数据占一行,都只有一个整数M(0<=M<=10000000)输出输出M的阶乘的十进制表示中最后0的个数比如5!=120则最后的0的个数为1样例输入6360100102423456873537... 阅读全文
posted @ 2014-05-06 11:32 hansongjiang8 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题描述 给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。 计算公式 这里先给出其计算公式,后面给出推导过程。 令f(x)表示正整数x末尾所含有的“0”的个数,则有: 当0 = 5时... 阅读全文
posted @ 2014-05-06 10:40 hansongjiang8 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 感觉c++很陌生啊 题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。 输入 输入有多组数据(少于100组),以文件结尾结束。每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。 输出 每组输出数据单独占一行,输出对应得先序序列。 样例输入 ACBFGED ABCDEFGCDAB C... 阅读全文
posted @ 2014-05-05 14:03 hansongjiang8 阅读(134) 评论(0) 推荐(0) 编辑