
算法
文章平均质量分 73
xw_njust_ecjtu
沉淀
展开
-
跳台阶问题 -微软题
转:http://blog.youkuaiyun.com/yuucyf/article/details/6691697题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法思路一:首先我们考虑最简单的情况:如果只有1 级台阶,那显然只有一种跳法,如果有2 级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1 级;另外一种就是一次跳2 级。转载 2013-10-28 17:05:54 · 787 阅读 · 0 评论 -
打印n对括号匹配的所有组合
像er#include #include #include #include using namespace std;void paren(int n,int level,int count_left,int count_right,vector &res,string str);void paren_str(int n);int main(){ paren_str(4原创 2014-05-20 11:14:51 · 1342 阅读 · 0 评论 -
给定数量的币值,如25分,10分,5分,1分,编写计算n分的有多少种表示方法
这是一个递归枚举问题。原创 2014-05-21 20:53:03 · 1607 阅读 · 0 评论 -
归并排序
sho#include #include #include "vld.h"using namespace std;void merge_sort_recursive(int *A,int low ,int high);void merge_array(int *A,int low ,int mid ,int high);void merge_sort(int *A,int n)原创 2014-05-26 21:42:31 · 515 阅读 · 0 评论 -
基数排序
算法导论中,计数排序,基数排序,原创 2014-04-08 17:25:34 · 562 阅读 · 0 评论 -
Catalan数计算及应用
转自:http://blog.youkuaiyun.com/wuzhekai1985/article/details/6764858转载 2014-06-30 09:51:25 · 559 阅读 · 0 评论 -
寻找第k小的元素或者第k大的元素 -- O(n)
此题第一思路肯定是,#include #include using namespace std;int partition(int *A,int s,int e);//划分int select_k(int * A,int n,int k);int select_k_recursive(int * A,int s,int e,int k);//选出第k个大的数int m原创 2014-05-29 09:58:10 · 1435 阅读 · 0 评论 -
概率事件 rand5 产生 rand3 以及在未知n大小情况以1/n的概率取数 蓄水池抽样
#include #include #include #include #include using namespace std;int rand_5();int rand_4();int find_n(int n);int main(){ srand((unsigned int)time(NULL));//不能放在函数内,只能用一次! int count[5] = {0原创 2014-06-11 21:29:24 · 1296 阅读 · 0 评论 -
一个数组arr,长度为N,N小于10^8,里面数字的范围是1~N,是否有重复,并统计出来
#include #include #include #include using namespace std;void count_num(int *array,int n);int main(){ int array[10]={4,3,2,3,4,5,2,8,6,2}; count_num(array,10); for (int i = 0 ;i < 10;i++)原创 2014-05-16 10:52:08 · 1495 阅读 · 0 评论 -
丑数
我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。注:1是第一个丑数。简单的zuofashi原创 2014-05-13 19:58:40 · 586 阅读 · 0 评论 -
全排列
具体思路是俩俩交换,原创 2014-05-19 23:11:03 · 508 阅读 · 0 评论 -
回溯法---n皇后问题
在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 利用回溯法:回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜原创 2014-01-18 12:57:17 · 1533 阅读 · 0 评论 -
图着色问题 (转)
转自:http://blog.chinaunix.net/uid-22263887-id-1778924.html 感谢作者:chhayahttp://blog.youkuaiyun.com/chdhust/article/details/9138333 感谢作者:快乐的霖霖http://blog.youkuaiyun.com/suwei19870312/article/details转载 2014-03-11 21:28:12 · 2666 阅读 · 0 评论 -
图着色
图着色的详细介绍请看:图着色问题 (转)编程之美 -- 高效安排见面 也是图着色问题。在校园招聘的季节里,为了能让学生们更好地了解微软亚洲研究院各研究组的情况,HR部门计划为每一个研究组举办一次见面会,让各个研究组的员工能跟学生相互了解和交流。已知有n位学生,他们分别对m个研究组中的若干个感兴趣。为了满足所有学生的要求,HR希望每个学生都能参加自己感兴趣的所有见面会。如果每个见面会的时间为原创 2014-03-16 21:25:13 · 820 阅读 · 0 评论 -
图着色--非递归实现
图着色递归版。通过前面的递归办很容易验证当前代码是否正确。不管是迭代版还是非迭代版本。俩者都是通过递归树来转化。理解好递归树是问题的关键。递归树的的树枝个人认为是行为,而节点是来着行为的结果。对于非递归版本,需找到1 退出条件2 选用满足要求的情况,进入下一行为3 得到结果进行下一节点的条件检查!(1 继续下一节点遍历 2 达到树底 3 当前层分支情况都遍历完,需回原创 2014-03-16 23:06:27 · 1111 阅读 · 0 评论 -
堆排序,以及stl中的堆应用
#include #include #include #include using namespace std;void recursive_max_heap_shift_down(int *array,int start,int end);void make_max_heap(int *array,int start,int end);void nonrecursive_make原创 2014-05-02 16:31:55 · 796 阅读 · 0 评论 -
括号匹配问题
用了俩种方式实现,递归,非递归。此题#include #include #include using namespace std;bool match(char *str,int &index,int &num);bool is_valid(char *str);bool simple_isvalid(char *str);int main(){ char s原创 2014-05-15 22:18:33 · 580 阅读 · 0 评论 -
RGB排序
RGB排序,一个字符串,里面只有三种字符R G B,所有的R都在G的前面,所有的G都在B的前面。将给定字符串按照此规律排序。要求不允许用辅助空间,复杂度控制在O(N)。遍历一遍就排好序#include #include using namespace std;void rgb_sort(char *array,unsigned int n);int main(){原创 2014-04-26 21:21:34 · 3360 阅读 · 0 评论 -
组合 问题
有俩种思路:1,#include #include #include "vld.h"using namespace std;void combine_str(string str);void combine(string str,int level,string &res,bool *used);bool is_repeat(string str ,int k,bool *us原创 2014-05-19 21:48:09 · 566 阅读 · 0 评论 -
字符串的四则运算
个人知道的有俩种解法1、原创 2014-06-19 09:47:10 · 1776 阅读 · 0 评论