2013年7月19日
摘要: 题目: 输入n个整数,输出其中最小的k个,例如输入1,2,3,4,5,6,7,8这8个数,则最小的4个是1,2,3,4(输出不要求有序)解: 利用快速排序的partition,算导上求第k大数的思想,求出第k大的数,然后遍历数组,如果a[i]#include#includeusing namespace std;// a[begin]->a[end]int partition(int *a,int begin,int end){ srand((int)time(NULL)); int pivot=rand()%(end-begin+1)+begin; int temp; ... 阅读全文
posted @ 2013-07-19 21:00 紫金树下 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一个二叉树,从根结点开始往下访问一直到叶子节点所经过的所有节点组成一条路径,打印出和与输入整数相等的所有路径解: 参考打印二叉树中某节点的祖先节点http://www.cnblogs.com/buxianghe/p/3198662.html这里还是采用后续非递归遍历的方法,记录在栈中的节点元素的和,当1个节点2次进栈2次出栈时,并且满足从根结点到它的和等于输入的和,并且它是叶子节点时,那么此时栈中元素就是这条路径,打印它代码:/* 参考后续遍历 */#includeusing namespace std;typedef struct node{ int data; ... 阅读全文
posted @ 2013-07-19 15:18 紫金树下 阅读(326) 评论(0) 推荐(0) 编辑