Algorithm - java
绿色小光头
这个作者很懒,什么都没留下…
展开
-
并查集 Union-Find
并查集 Union-Find基本结构public class UF { private int count; private int[] id; public UF(int n) { count = n; id = new int[n]; for (int i = 0; i < n; i++) { ...原创 2019-06-13 16:28:29 · 199 阅读 · 0 评论 -
马拉车算法 Manacher
马拉车算法 Manacher具体分析:博客园 - BIT祝威代码实现 - Manacherclass Solution { public String longestPalindrome(String s) { // 特殊情况排除 if (s == null || s.isEmpty()) { return ""; ...原创 2019-06-13 16:32:08 · 192 阅读 · 0 评论 -
Percolation
PercolationPercolation.java主要问题为backwash。其形成原因为:因为存在上下两个虚拟节点,当percolates()为true上下贯通时,所有在最底排的已经打开的节点都会变成与上虚拟节点连通(每打开一个底部节点,都会将其与下虚拟节点连通)。解决方法是再设置一个union-find,但只提供上虚拟节点,将isFull()放在第二个union-find中进行判断。...原创 2019-06-15 10:47:18 · 566 阅读 · 0 评论 -
拓扑排序
拓扑排序拓扑排序是将有向无环图G的所有顶点排成一个线性序列,使得对图G中的任意两个顶点u、v,如果存在边u->v,那么在序列中u一定在v前面。这个序列又被称为拓扑序列。使用postOrder dfs方法。public class TopologicalOrder { private boolean[] marked; private List<Integer>...原创 2019-10-01 13:55:30 · 192 阅读 · 0 评论