算法设计
BrightPi
这个作者很懒,什么都没留下…
展开
-
求自然数序列的最小公倍数
Sample Input:6Sample Output:60算法比较简单,其中开辟一个数组保存了对应每个自然数的因子fact[i],然后最后把这些因子相乘即得到结果。/*least_multiply.c*//* least common mutiples */#include #include #include /* memset () */#define原创 2013-08-19 21:53:39 · 1359 阅读 · 0 评论 -
打印两点间的所有路径
有如下的图,该如何打印起始节点和终点的所有路径呢?考虑到路径枚举的回溯,所以想到用栈来实现之。奥妙之处:需要给每个入栈的节点添加标记printed,而出站的时候,如何设置标记就是关键。已在代码中体现。原创 2013-08-26 13:24:20 · 963 阅读 · 0 评论 -
淘宝研究院的面试题
1. 有无序的实数列V[N],要求求里面大小相邻的实数的差的最大值,关键是要求线性空间和线性时间2. 25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马3. 有一个函数int getNum(),每运行一次可以从一个数组V[N]里面取出一个数,N未知,当数取完的时候,函数返回NULL。现在要求写一个函数int get(),这个函数运行一次原创 2013-08-15 19:53:07 · 1801 阅读 · 0 评论 -
求无序数组的中位数
原文地址:http://blog.csdn.net/zdl1016/article/details/4676882中位数即是排过序后的处于数组最中间的元素。 不考虑数组长度为偶数的情况。设集合元素个数为n。简单的想了下:思路1) 把无序数组排好序,取出中间的元素 时间复杂度 采用普通的比较排序法 O(N*logN) 如果采用非转载 2013-08-24 14:32:52 · 1098 阅读 · 0 评论 -
数据结构之trie树
trie树,又称字典树、前缀树,是一个用于快速检索字符串或数字串的多叉树。它话费较大的存储空间(O(26^n))来获得线性时间的检索效率,其中n是输入的字符串的长度。我们使用动态数据结构来存储之。下面是一个字符串的trie树。#include #include #define N 26typedef struct _trie_node{ int end; /* 字符串原创 2013-09-21 16:37:23 · 787 阅读 · 0 评论 -
字符串匹配之KMP算法
线性时间的字符串匹配算法。/* kmp.c * string matcher */#include #include int szl_strlen (const char * str){ return ('\0' == * str) ? 0 : (1 + szl_strlen (1 + str));}int * kmp_prefix_function (int * de原创 2013-08-30 23:58:07 · 704 阅读 · 0 评论 -
Alibaba 阿里巴巴2014笔试题
前天笔试的阿里巴巴,有一道填空题是问如何只扫描一次数组,求出其方差。考试的时候知道肯定可以求出来,而且要用迭代(即递推),可惜当时由于时间紧张,推导的公式写错了。在此补上。公式使用LaTeX写的。所以只能截图了。最后给出了C函数。原创 2013-09-24 16:12:11 · 2625 阅读 · 8 评论