- 博客(17)
- 资源 (19)
- 问答 (4)
- 收藏
- 关注
原创 读《驯服烂代码——在编程操练中悟道》
读《驯服烂代码——在编程操练中悟道》第2章 按图索骥地编写代码第4章 调试一下第5章 用TDD重做编程操练题目第6章 消除假数据所带来的重复代码第8章 嗅出代码腐臭和新的测试点第9章 测试后行 vs 测试先行 TDD开发方法具有的优势第10章 何谓烂代码 烂代码的定义第一个项目实例第11章 记录所闻到的腐臭第12章 用测试描绘用户意图第13章 分而治之釜底抽薪第14章 分而治之
2016-06-26 19:59:42 3593
原创 字符串匹配——RabinKarp算法
字符串匹配——RabinKarp算法给定主串T和模式串P,返回P在T中首次出现的位置,如果P不存在于T中,返回-1。这样的问题就是字符串匹配问题,这里给出RabinKarp算法的思想。设主串T的长度为n,模式串P的长度为m。主串匹配起始位置s从0到n-m,计算出T[s..s+m-1]的对应值,与P[0…m-1]的对应值进行比较,如果相同,则匹配成功。不同,则s右移一位,也就是计算出T[s+1…s+m
2016-06-14 17:12:36 1207
原创 字符串匹配——枚举法
字符串匹配——枚举法给定主串T和模式串P,返回P在T中首次出现的位置,如果P不存在于T中,返回-1。这样的问题就是字符串匹配问题,这里先给出枚举法的思想。设主串T的长度为n,模式串P的长度为m。主串从0到n-m,每次选取连续的m个字符,跟模式串P的m个字符进行一一比较。伪代码BruteForce(T, P)01 for s <- 0 to n - m02 j <- 003 // check
2016-06-14 13:34:07 3548
原创 搜索策略
搜索策略 搜索是由初始状态到目标状态的求解过程,就搜索结果分类,分为可行解搜索1和最优解搜索2。搜索策略是在求解过程中使用的方法。搜索往往是通过树的形式来描述。搜索方式广度优先搜索(BFS)构造由根组成的队列QIf Q 的第一个元素x是目标节点 Then 停止从Q 中删除x,把x的所有子节点加入Q的末尾If Q空 Then 失败 Else goto 2深度优先搜索(DFS)构造一个
2016-06-13 18:30:53 7603
原创 滑动窗口的最小值问题
滑动窗口的最小值问题 滑动窗后的最小值问题。输入正整数k和一个长度为n的整数序列A1,A2,A3,…,AnA_1, A_2, A_3, … , A_n。定义f(i)f(i)表示从元素ii开始的连续kk个元素的最小值,即f(i)=min{Ai,Ai+1,…,Ai+k−1}f(i)=min\{A_i, A_{i+1},…, A_{i+k-1}\}。要求计算f(1),f(2),f(3),…,f(n−k
2016-06-09 12:52:56 6223
原创 11572 - Unique Snowflakes
Unique SnowflakesEmily the entrepreneur has a cool business idea: packaging and selling snowflakes. She has devised a machine that captures snowflakes as they fall, and serializes them into a stream of
2016-06-07 18:24:47 1135
原创 11054 - Wine trading in Gergovia
Wine trading in GergoviaAs you may know from the comic “Asterix and the Chieftain’s Shield”, Gergovia consists of one street, and every inhabitant of the city is a wine salesman. You wonder how this ec
2016-06-07 15:11:58 872
原创 11134 - Fabled Rooks
Fabled RooksWe would like to place nn rooks, 1≤n≤50001 \le n \le 5000, on a n×nn \times n board subject to the following restrictionsThe ii-th rook can only be placed within the rectangle given by i
2016-06-07 14:05:36 635
原创 1152 - 4 Values whose Sum is 0
4 Values whose Sum is 0The SUM problem can be formulated as follows: given four lists A,B,C,DA,B,C,D of integer values, compute how many quadruplet (a,b,c,d)∈A×B×C×D(a,b,c,d) \in A \times B \times
2016-06-05 22:01:25 1235
原创 1605 - Building for UN
Building for UNThe United Nations has decided to build a new headquarters in Saint Petersburg, Russia. It will have a form of a rectangular parallelepiped and will consist of several rectangular floors
2016-06-05 19:55:18 865
原创 120 - Stacks of Flapjacks
Stacks of FlapjacksBackgroundStacks and Queues are often considered the bread and butter of data structures and find use in architecture, parsing, operating systems, and discrete event simulation. Stac
2016-06-05 16:35:14 851
原创 Huffman编码解码
Huffman编码解码霍夫曼(Huffman)编码问题也就是最优编码问题,通过比较权值逐步构建一颗Huffman树,再由Huffman树进行编码、解码。其步骤是先构建一个包含所有节点的线性表,每次选取最小权值的两个节点,生成一个父亲节点,该父亲节点的权值等于两节点权值之和,然后将该父亲节点加入到该线性表中,再重复上述步骤,直至构成一个二叉树,注意已经使用过的节点不参与。Huffman编码贪心原理编码
2016-06-05 14:06:49 17897 4
原创 贪心法——区间选点问题
贪心法——区间选点问题 区间选点问题。数轴上有nn个闭区间[ai,bi][a_i, b_i]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。贪心思想:先按bb从小到大进行排序,再选择b0b_0作为选点pospos,如果出现ai>posa_i > pos,则以bib_i作为pospos,再按照这样的方式迭代。直至所有区间遍历完。区间选点问题算法实现// 区间数据结构
2016-06-04 13:31:28 3755
原创 贪心法——区间覆盖问题
贪心法——区间覆盖问题 区间覆盖问题。数轴上有n个闭区间[ai,bi][a_i, b_i],选择尽量少的区间覆盖一条指定线段[s,t][s,t]。先进行预处理,将不包含[s,t][s,t]的区间都去掉,然后再按左区间从小到大排序。如果最小区间的左区间大于ss的话,则无解。选取包含ss的右区间最大的区间,该区间的右区间仍然小于下一个区间的左区间,则无解。按照这样的方法一直选择到最后一个区间,如果
2016-06-03 22:18:36 4645
原创 贪心法——基本思想
贪心法——基本思想贪心法,顾名思义表示总是选择当前最优的,以期望达到整体最优。贪心法一般用于求解最优化问题。采用贪心法求最优化问题的算法,一般都包含一系列步骤,每一步都有一组选择,每次都选择当前最优的选择,希望通过局部最优的选择达到全局最优的选择。贪心法不一定总能产生最优解,可能产生近似解甚至完全不正确的答案,故想使用贪心法,最好是能够能够符合贪心法产生优化解的条件。贪心法产生优化解的条件
2016-06-03 18:12:57 7742
原创 贪心法——选择不相交区间
贪心法——选择不相交区间 选择不相交区间。数轴上有nn个开区间(ai,bi)(a_i, b_i)。选择尽量多个区间,使得这些区间两两没有公共点。贪心思路:按bb的大小,将区间从小到大排序,选择最小的区间,再选择和该区间无交点的最小区间,以此往复,知道遍历完所有区间。选择不相交区间算法实现// 区间数据结构struct Region { // 左区间 int left;
2016-06-01 18:17:03 2418
原创 贪心法——乘船问题
贪心法——乘船问题 乘船问题。有nn个人,第ii个人重量为wiw_i。每艘船的最大载重量均为CC,且最多只能乘两个人。用最少的船装载所有人。贪心思路:每次取最轻值wminw_{min}和最重值wmaxw_{max},如果wmin+wmax≤Cw_{min} + w_{max} \le C则wminw_{min}为次最轻值,wmaxw_{max}为次最重值。否则wmaxw_{max}为次重值。乘
2016-06-01 16:14:32 6274
个人博客设计文档
2016-04-28
oolong.jar
2016-03-21
web方面职业生涯问题?
2015-10-26
Fibonacci堆中mark域的变换规则和degree域的遵循条件是什么?
2015-08-17
二项堆和Fibonacci堆问题?
2015-08-16
程序员面试,基本功重不重要(算法和数据结构)?
2015-08-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人