随笔分类 -  算法

摘要:Trie主要用于字符串快速匹配的数据结构。如果用来构建 Trie 树的这一组字符串中,前缀重复的情况不是很多,那 Trie 树这种数据结构总体上来讲是比较费内存的,是一种空间换时间的解决问题思路。尽管比较耗费内存,但是对内存不敏感或者内存消耗在接受范围内的情况下,在 Trie 树中做字符串匹配还是非 阅读全文
posted @ 2020-04-13 20:40 不二良 阅读(172) 评论(0) 推荐(0)
摘要:动态规划和分治没有根本上的区别(关键看有无最优子结构) 共性:找到重复子结构 差异性:最优子结构,中途可以淘汰次优解 问题一:斐波那契数列 int fib(int n) { if(n<=1) return n; else return fib(n-1)+fib(n-2); } 可以利用记忆数组进行优 阅读全文
posted @ 2020-04-11 15:50 不二良 阅读(158) 评论(0) 推荐(0)
摘要:0-1背包问题指的是有一个能装w重的背包,和n个不同重量的物体,如何选择物体才能尽可能地装满背包。 回溯的处理思想,有点类似枚举搜索。我们枚举所有的解,找到满足期望的解。为了有规律地枚举所有可能的解,避免遗漏和重复,我们把问题求解的过程分为多个阶段。每个阶段,我们都会面对一个岔路口,我们先随意选一条 阅读全文
posted @ 2020-04-11 14:05 不二良 阅读(1093) 评论(0) 推荐(0)
摘要:在机试笔记4中的统计子字符串个数题目中,使用了一种时间复杂度为O(n*m)的字符串匹配算法,他也叫暴力匹配算法或者BF算法。在实际的开发中,它却是一个比较常用的字符串匹配算法。原因有以下几点: 第一,实际的软件开发中,大部分情况下,模式串和主串的长度都不会太长。而且每次模式串与主串中的子串匹配的时候 阅读全文
posted @ 2020-04-05 19:13 不二良 阅读(556) 评论(0) 推荐(0)