- 博客(4)
- 收藏
- 关注
原创 字典树(Trie、prefix tree)及其应用(求一个数组中的最大异或值)
trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值(字符串结尾的那个结点)。trie中的键通常是字符串,但也可以是其它的结构。
2017-10-16 13:53:11 670
原创 数组中的逆序对(剑指offer)
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据,siz
2017-10-13 09:35:50 436
原创 正则表达式匹配(.和*)
剑指offer和leetcode10 请实现一个函数用来匹配包括‘.’和*表达式。模式中的字符‘.’表示任意一个字符,而*表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配 e.g. match(“aa”,”a”) → false match(“
2017-10-09 14:47:07 1657 1
原创 如何判断2条线段是否相交(编程实现)?
我们在编程中有时可能会碰到一些问题,比如怎么判断2条线段是否相交,最常规的一种思路可能就是解方程,看是否有交点,但这种方法用代码实现感觉稍显复杂,时间复杂度大,且控制条件多,很容易出错,那我们有没有更简单的方法呢?我们在大约高中的时候应该都学过向量的叉积,2个向量做叉积,比如a向量 叉乘 b向量, 大小为|a||b|*sin(theta), 方向遵循右手定则,用右手4根指头从a向量指向b向量,
2017-10-02 16:21:14 12726
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人