- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Mysql的一些总结
子查询我理解的子查询就是,在一个select查询中,用到了一个表a,那么我们把要查找的一列(比如a.col)的属性(或者叫元素)作为一个“变量”传入判断条件中,而这个判断条件包含一个新的select查询,如果这个“变量”传入新的select查询以后,使得这个判断条件得以满足。那么这个元素便会被外层select查询选中。...
2021-07-07 21:57:18
50
原创 Trie 字典树
特殊的26叉树,每个节点里只有一个boolean型变量判断是否为一个单词的结尾,以及Trie类型的next数组用来记录每一个节点。操作:插入新单词:用 (node.next[c-‘a’] == NULL)来判断当前节点是否具有字符c的节点,如果没有,就新建一个。查找:一直向下匹配如果节点值为空 或者 isEnd为false,就返回false。前缀匹配:和查找类似,只是当遍历结束的时候,不需要再判断isEnd是否为false了。应用场景“一次建树,多次查询”...
2021-06-09 21:29:25
60
原创 处理树问题的一些结构框架
思路:设计好当前节点需要做的操作,剩下的(左右子树)交给递归框架。一些题目(剑指offer26. 树的子结构)(101.对称二叉树)。借用辅助函数:如果当前节点会对下面的子节点有整体影响,可以通过辅助函数增长参数列表,借助参数传递信息。例题(98.验证二叉搜索树)(101. 对称二叉树)。二叉搜索树的操作:判断BST的合理性。因为子节点下面的节点值也需要和当前根节点的值进行比较,所以需要辅助变量通过参数传递信息遍历查找。插入:先遍历查找。找到空位置,直接插入,并返回新建节点。删除:找
2021-06-08 22:12:43
61
原创 处理字符串,数组和链表时,需要注意的点
数组边界点的处理和测试(测试代码时,要考虑边界情况)。if或while的判断语句中,只要出现了指针索引 i ,就一定要规定 i 在数组大小范围内。双指针的技巧。链表遍历链表时都会用到几个指针cur,pre,head。有时候在表头head前面加一个空值结点hair,会更方便处理。最后输出结果hair.next即可。...
2021-06-04 21:51:33
60
1
原创 leetcode中的数学方法
卡塔兰数满足h(n)= h(0)* h(n-1) + h(1)* h(n-2) + … + h(n-1)h(0) (其中n>=2)形式一阶迭代公式:有迭代公式就用迭代公式,不然计算大小会超出计算机限制h(n) = h(n-1) * (4n-2)/(n+1) 先算乘法,否则不能整除。而一旦先算乘法就需要用long类型了。组合数 :h(n)=C(2n,n)/(n+1)...
2021-05-28 17:12:27
89
原创 2020-11-25回溯算法
回溯和剪枝回朔法的思想: 回朔法的重要思想在于: 通过枚举法,对所有可能性进行遍历。 但是枚举的顺序是 一条路走到黑,发现黑之后,退一步,再向前尝试没走过的路。直到所有路都试过。因此回朔法可以简单的理解为: 走不通就退一步的方枚举法就叫回朔法。而这里回退点也叫做回朔点。回朔关键点 通过分析发现,回朔法实现的三大技术关键点分别是:一条路走到黑回退一步另寻他路关键点的实现 那么如何才能用代码实现上述三个关键点呢?for 循环递归解释如下for循环的作用在于另寻他路: 你可以用for循
2021-05-27 11:23:50
65
原创 java字符串知识点总结
字符串字符拼接如果明确两个都是字符串且不为空时,使用String.concat(str)。这种方法效率最高append()。这个方法是StringBuffer类的,适合需要拼接多个量的情况。+。当两个量有一个是字符串时,就可以将两者转换成字符串拼接。字符转换成字符串将字符转换成字符串上:String.valueOf(‘c’),效率最高的方法StringBuffer和StringBuilderString类是固定的。但是StringBuffer就算进行多个操作,也不会产生新的对象。Str
2020-11-03 17:12:47
165
原创 2020-10-26动态规划
动态规划题目总结维基百科中关于动态规划的描述是,只能运用于有最优子结构的问题,并且在处理的问题有很多重叠子问题时,特别有效。最优子结构是指局部最优值能决定全局最优值。(这一点似乎和贪婪算法很相似)。对于动态规划问题,最重要但也最难的,就是确定迭代公式。一般来说,它是分2,3种情况的分段函数。还有个重要的就是迭代矩阵,一般动态规划问题都可以写出一个矩阵,从右下到左上,就是一个大问题不断分解为小问题的过程。自己试着写一写迭代矩阵,对理解对应的动态规划题目有很大的帮助。记住几点迭代公式一定是从大到小
2020-10-26 18:15:25
79
原创 2020-10-18 动态规划(最长回文子串)
最长回文子串动态规划就在这里记录一下动态规划。我的理解是动态规划需要一个递归表,更容易理解。对于这个题,递归函数中,如果i = j,必然是回文,如果i = j-1,只需要比较这两个位置的值是否一样,否则,就需要递归比较内部的字符串。以abccbd作为例子,最开始是f[0][0](f[i][j]指s.substring(i,j+1)这一子串是否为回文),肯定为true,接着是f01, f11, f02, f12, f22…i \ j0a1b2c3c4b5d0atru
2020-10-18 18:44:45
133
原创 2020-10-05哈希表
只是突然想写下自己的想法。加油,慢慢来。leetcode——two sum首先自己的思路是,先排序,然后同时从最左边和最右边开始,不断使两边的索引向中间移动。这让我想到了快速排序,快排中partition的思想是,左右开弓,小的数到左边,大的数到右边,最后找到中间值应该在的索引位置。而我对于这个题的思路是,min + max,如果小于target,那么增大min(因为此时减小max永远不可能达到target),反之就减小max。如果不算排序过程,后面那一步应该是O(n)时间复杂度的吧?lucife
2020-10-05 21:27:50
91
《算法导论(原书第3版)》
2018-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人