摘要: 觉得这题挺有意思,看了别的博客,找到了一种目前看来还不错的算法,为强化理解,就写了下来。 题目意思: 实现一个挺高级的字符匹配算法: 给一串字符串,要求找到符合要求的字符串,例如对于目的串:123,那么给定字符串中诸如1******3*****2,12******3这些形式的子串都要找出来,即子串中含有目的串的所有字符,输出所有符合条件的字符串,并求出最短子串 。类似于和谐系统。 例如:假如目... 阅读全文
posted @ 2015-02-24 23:10 asdfping 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 关于比特位算法,在《编程珠玑》中有很多地方都提到了利用比特位存储数据的算法(这本书中称之为位向量),例如第1章中利用比特位实现一个内存占用小的磁盘查找程序,第13章利用比特位实现集合等待。在很多地方,都可以利用比特位来巧妙地实现一些算法,大大提高算法的执行效率,下面举两个例子说明(题目来源于LeetCode): LeetCode 85:Maximal Rectangle 这道题目意思是:给定一个只... 阅读全文
posted @ 2015-02-09 11:40 asdfping 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 求数组的子数组之和的最大值是在《编程之美》上的一道题,觉得挺有意思,就写下此文,也便于自己以后温习。 这道题的解法有很多种,比较容易想到的方法有枚举法,就是把所有的子数组长度的和都计算一遍,求出其中的最大值。这种算法的时间复杂度是O(n^2);还有分治法,就是将数组分为一半一半,那么最大和=Max(左半边的最大和,右半边的最大和,左右两边衔接处所所构成的最大和),其解的示意图如下所示。 这种... 阅读全文
posted @ 2015-02-08 20:53 asdfping 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 源自于LeedCode上的一道实现正则表达式的题目,不过题目对正则匹配的规则有所简化。具体如下: 要求字符串str完全匹配模式pattern,例如: str:abcs pattern:.* √ str:abcabc pattern:abc 要求完全匹配 × 若完全匹配,返回true,否则返回false。 正则式的特殊符号只有两个,一个是".",一个是"*"。 题目对匹配类型和规则进... 阅读全文
posted @ 2015-01-30 15:08 asdfping 阅读(282) 评论(0) 推荐(0) 编辑