
总结
文章平均质量分 82
flyatcmu
这个作者很懒,什么都没留下…
展开
-
区间型动态规划总结
区间型动态规划,都是dp[i][j]由小的区间先计算,然后计算大的区间得到,模板就是:for(int len = 2; len <= n; len++) { for(int i = 0; i + len - 1 < n; i++) { int j = i + len - 1;很多题都可以用这个模板写;Longest Palindromic Subsequence思路:区间型动态规划,f[i][j]表示s[i] ~ s[j]之...原创 2020-09-05 10:01:53 · 1316 阅读 · 0 评论 -
Design Pattern 总结
Singleton Pattern:1. Early modepublic class President{ private static President instance = new President(); private President() {} public static President getInstance() { return instance; }}2. Lazy mode:public class原创 2020-08-07 00:21:02 · 277 阅读 · 0 评论 -
N-ary 题型总结
N-ary题型,最近问的比较多。总结一下。N-ary Tree Postorder TraversalN-ary Tree Preorder TraversalSerialize and Deserialize N-ary TreeMaximum Depth of N-ary TreeN-ary Tree Level Order Traversal原创 2020-08-05 13:34:34 · 824 阅读 · 0 评论 -
Segment Tree题型总结
1. 模板2. 模板3. 模板原创 2020-01-19 15:44:53 · 684 阅读 · 0 评论 -
Interval 类型总结
Interval是一类型的题目,面试的很喜欢出,这里把所有interval的题目全部总结一下;Merge Intervals首先按照start sort之后,判断end是否跟start相交,如果相交,end就是两者最大值;否则加入cur;注意最后需要加入cur;class Solution { public int[][] merge(int[][] intervals) { if(intervals == null || intervals.length == 0 ||.原创 2020-07-25 12:14:51 · 2994 阅读 · 0 评论 -
Basic Calculator 总结
Basic CalculatorBasic Calculator IIBasic Calculator III三个题目可以用一种解法;原创 2020-07-17 11:45:52 · 881 阅读 · 0 评论 -
PriorityQueue 总结
Sliding Windom MedianFind Median from Data Stream原创 2020-07-12 04:08:20 · 1020 阅读 · 0 评论 -
LeetCode 所有算法类型总结
BFS 到 Level Order traversal 到 Union Find 到 Topological Sort 到 Dijkstra 思路总结Topological Sort 一篇Dijkstra 一篇Union Find 总结 一篇Sorting (Merge Sort, Rainbow Sort, quick select) 一篇Find Kth题目类型一篇PreOrder, InOrder, PostOrder 题型总结一篇Tree的Traverse and div原创 2020-07-09 11:23:27 · 4849 阅读 · 1 评论 -
Prefix Sum 总结
Interval SumGiven an integer array (index from 0 to n-1, where n is the size of this array), and an query list. Each query has two integers[start, end]. For each query, calculate the sum number bet...原创 2020-03-23 14:41:54 · 4576 阅读 · 0 评论 -
Math 题目总结
Math的题目,其实全是数学知识,没有什么太多的算法可言。Sparse Matrix Multiplication (矩阵相乘就是所有的k,A(i,k) * B(k,j) = C(i,j) ,稀疏矩阵就是 有很多0,为了提高速度也就是如果 A(i,k) 或者B(k,j), k 从0到length,如果有0,那么这个计算就不进行了)...原创 2020-07-04 11:35:29 · 683 阅读 · 1 评论 -
Greedy 类型题总结
placeholder for greedy problem.原创 2020-02-17 11:48:00 · 420 阅读 · 0 评论 -
同向双指针高阶题总结
有一类题,看起来很像同向双指针,但是不完全是,一般都是求exactly K同向双指针教会了我们如何求at most K, 现在我们要求exactly K. 那么我们可以转换为 exactly K = atMost(K) - atMost(K - 1);这类题有好多,如下:Substrings of size K with K distinct charsGiven a stringsand an intk, return an int representing the number o...原创 2020-05-17 08:42:09 · 484 阅读 · 0 评论 -
记忆化搜索总结
DFS + Memo就是DP,注意cache存的物理意义,因为DFS是top down的,那么都是走到base case了,然后返回,那么存的结果就是从base case来的结果,那么就是存dp[0][0], dp[0][1] .. 一直到dp[n][target]. 最后返回的就是dp[n][ target],还有个tricky的地方就是表示是否有值和是否访问过,解决方法就是存-1,代表没有访问...原创 2020-04-28 09:39:52 · 1387 阅读 · 0 评论 -
DP总结
区间型DP坐标性DP原创 2020-01-20 05:52:17 · 517 阅读 · 0 评论 -
Binary Search 总结
Find K Closest ElementsGiventarget, a non-negative integerkand an integer arrayAsorted in ascending order, find thekclosest numbers totargetinA, sorted in ascending order by the difference...原创 2020-02-25 14:20:43 · 489 阅读 · 0 评论 -
Backtracking 隐式图搜索 总结
SubsetsGiven a set ofdistinctintegers,nums, return all possible subsets (the power set).Note:The solution set must not contain duplicate subsets.Example:Input: nums = [1,2,3]Output:[ ...原创 2020-02-23 15:37:57 · 380 阅读 · 0 评论 -
Binary Tree - Divide Conquer & Traverse 题型总结
place holder原创 2020-02-18 11:39:54 · 281 阅读 · 0 评论 -
Binary Tree - Lowest Common Ancestor 题型总结
Lowest Common Ancestor of a Binary Search TreeGiven a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedi...原创 2020-02-20 14:52:31 · 199 阅读 · 0 评论 -
Binary Tree - Path Sum总结
Path Sum IGiven a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.Note:A leaf is a node with no childre...原创 2020-02-19 14:09:29 · 313 阅读 · 0 评论 -
二分答案总结
二分答案是binary search里面比较难的题型,也就是,直接求一个最值很难,但是我们可以很简单的在解空间做判定性问题,比如能不能,行不行,大了还是小了,return true or false,从而缩小解空间,记住,这种方法有个前提条件就是有单调递增或者递减的性质,才能用。这也是binary search使用的条件;Wood Cut有一些原木,现在想把这些木头切割成一些长度相同的小段...原创 2020-01-17 01:51:36 · 2567 阅读 · 0 评论 -
扫描线Sweep Line算法总结
Number of Airplanes in the Sky给出飞机的起飞和降落时间的列表,用序列interval表示. 请计算出天上同时最多有多少架飞机?Example样例 1:输入: [(1, 10), (2, 3), (5, 8), (4, 7)]输出: 3解释: 第一架飞机在1时刻起飞, 10时刻降落.第二架飞机在2时刻起飞, 3时刻降落.第三架飞机在5时刻...原创 2020-01-13 15:33:37 · 7235 阅读 · 1 评论 -
单调栈类型总结
Largest Rectangle in Histogram给出的n个非负整数表示每个直方图的高度,每个直方图的宽均为1,在直方图中找到最大的矩形面积。Example样例 1:输入:[2,1,5,6,2,3]输出:10解释:第三个和第四个直方图截取矩形面积为2*5=10。思路:求最大矩阵,就是求每个元素height * 最左边第一个小于他的元素 到右边第一个小于他的...原创 2020-01-12 15:40:41 · 677 阅读 · 0 评论 -
Trie 类型的题目总结
trie字典树可以用来查找单词或者搜索剪枝用。Implement Trie (Prefix Tree)实现一个 Trie,包含insert,search, 和startsWith这三个方法。思路:模板必须记住;没有儿子建立儿子,有儿子走儿子;public class Trie { private class TrieNode { Trie...原创 2020-01-10 16:02:49 · 1184 阅读 · 1 评论 -
Union Find 题型总结
Connecting Graph给一个图中的n个节点, 记为1到n. 在开始的时候图中没有边。你需要完成下面两个方法:connect(a, b), 添加连接节点a,b的边. query(a, b), 检验两个节点是否联通思路:Union Find模板要会背诵;public class ConnectingGraph { private class Unio...原创 2020-01-09 14:32:32 · 1093 阅读 · 0 评论 -
Find Kth题目类型总结 (quick Select 类型总结)
找第k大或者第k小的题型,也是经常面试考,这里做个总结;首先quick select算法的模板要倒背如流,这个是通过quick sort里面提炼得到的算法;两个while一个if,condition相同;后面再递归Kth Smallest Numbers in Unsorted Array找到一个无序数组中第K小的数Example样例 1:输入: [3, 4, 1, 2,...原创 2020-01-07 15:01:55 · 2113 阅读 · 0 评论 -
同向双指针算法题总结
同向双指针是经常考的一种题型;什么时候用?发现题目,两个指针,只要固定一个,另外一个扫描,总是有坏坏坏,突然变好,不再回来或者好好好,忽然变坏,不再回来,那么就是同向双指针算法,基本上都是O(n)的算法复杂度;写程序注意的点:固定i,i是主指针每次走一步,写for循环,j是辅指针,写while循环,每次可能走N步;Minimum Size Subarray Sum给定一...原创 2020-01-07 12:24:15 · 2226 阅读 · 0 评论 -
Topological sort题型总结
1. graph怎么构建2.indegree怎么构建3. queue,构建拓扑排序原创 2020-01-19 15:42:15 · 654 阅读 · 0 评论 -
BFS题型总结
Word LadderInput:beginWord = "hit",endWord = "cog",wordList = ["hot","dot","dog","lot","log","cog"]思路:用level来判断step,注意两点:1. getAllNeighbors 是chars[i] = nc, 然后chars[i] = ic还原;2. 层级关系,一定要首先收集que...原创 2020-02-14 11:18:23 · 503 阅读 · 0 评论 -
PreOrder, InOrder, PostOrder 题型总结
Serialize and Deserialize BST思路:用preorder来构建string,因为preorder知道第一个就是root,找到后面大于root的点,就是right tree,注意null,用stringbuilder构建string。Time : O(N) serialize, O(N^2) deserialize;因为要循去找比root大的,T(n) = O(n) +...原创 2020-02-17 06:58:37 · 4184 阅读 · 0 评论