算法
张之海
硕士毕业于东北大学,现就职于北京某猫头鹰公司,大数据工程师职位。
展开
-
背包问题和0-1背包问题
#include #include #include #include #include #define maxn 1000using namespace std;void package(int n,float c,float v[],float w[],float x[]);void package0_1(int n,float c,float v[],float w[],原创 2015-11-24 15:18:29 · 555 阅读 · 0 评论 -
无序数组 排序后 最大间隔
本文现转载他人文章,后续会进行详细讲解。1 无序数组 排序后 最大间隔原题:给你n个任意整数,求排序后相邻两个数之间的最大差值,这里n可能有10^5,整数为任意32位整型。要求求解算法的时间复杂度为O(n)。1.1 思路:不排序的桶排序原文链接:https://blog.csdn.net/xindoo/article/details/52821167回到题目, 首先说明一点,这题的大体思...转载 2019-09-22 11:44:23 · 546 阅读 · 2 评论 -
如何求字符串的编辑距离
看过网上的多篇文章,图示的基本都是列表格的,看的晕敷敷的。最终还是自己用动态规划的思想给推出来的,所以从基本思想入手,一点点推导,或许比直接看人家的推导结果更有效。参考书籍:《Python程序员面试算法宝典》用动态规划的思想分析。下面的操作均是执行在字符串s1上。添加假设,字符串s1的i个字符构成的字符串,和字符串s2的j-1个字符构成的字符串,两个字符串的编辑距离 D(i,j-1)...原创 2019-05-30 07:24:08 · 325 阅读 · 0 评论 -
STL 交并补差
/*STL中的交并补差集运算:1.对于set,可随意使用,无特殊要求。2. 对于vector等 a.元素必须按序排列 b.存放结果的vector必须在定义时指定容量大小 原因未知 */#include #include #include using namespace std;int main() { vector vi; vector v2; vi.push_b原创 2016-03-13 16:31:00 · 1278 阅读 · 0 评论 -
C++中的find函数
头文件: 函数实现templateInputIterator find (InputIterator first, InputIterator last, const T& val){ while (first!=last) { if (*first==val) return first; ++first; } retur转载 2016-03-10 13:24:48 · 968 阅读 · 0 评论 -
queue —— 队列使用示例
#include#include //首字母小写 using namespace std;int main(){ queue q; //泛型 q.push(1); q.push(5); q.push(15); while(!q.empty()) { cout<<q.front()<<endl; q.pop(); }原创 2016-03-10 10:44:33 · 530 阅读 · 0 评论 -
大数运算(高精度运算)——通用解决方案
核心思想:自定义大数类型(结构体或类),重载运算符。最简单的大数运算模板:const int maxn = 1000;struct Bign{ int s[maxn],len; Bign() { memset(s,0,sizeof(s)); len = 1; } Bign operator = (con原创 2016-03-07 17:59:10 · 1038 阅读 · 0 评论 -
Kolakoski序列
Kolakoski 数列仅由 1 和 2 构成,其中头 100 个数是1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1,2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1,...转载 2019-09-25 17:33:22 · 459 阅读 · 0 评论