![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
梵谷的忧伤
这个作者很懒,什么都没留下…
展开
-
Morries遍历
package class05;public class Morries { public class Node { int value; Node left; Node right; Node(int data) { this.value = data; } } public static void morries(Node head) { if (head == null) return; Node cur1 = head.原创 2022-03-13 08:55:22 · 92 阅读 · 0 评论 -
单调栈结构
import java.util.ArrayList;import java.util.List;import java.util.Stack;public class Mon { public static int[][] getNearLessNoRepeat(int[] arr) { int[][] result = new int[arr.length][2]; Stack<Integer> stack = new Stack<Integer>(.原创 2022-03-12 20:49:44 · 54 阅读 · 0 评论 -
滑 动 窗 口
import java.util.LinkedList;public class Slide { public static int[] getMaxWindow(int[] arr, int w) { if (arr == null || w < 1 || arr.length < w) return null; LinkedList<Integer> qmax = new LinkedList<Integer>(); int.原创 2022-03-09 22:23:41 · 75 阅读 · 0 评论 -
Manacher算法
public class Manacher { public static char[] manacherString(String string) { char[] charArr = str.toCharArray(); char[] res = new char[str.length() * 2 + 1]; int index = 0; for (int i = 0; i != res.length; i++) { res[i] = (i & .原创 2022-03-06 19:34:52 · 91 阅读 · 0 评论 -
KMP算法
public class KMP { public static int getIndexOf(String s, String m) { if (s == null || m == null || m.length() < 1 || s.length() < m.length()) return -1; char[] str1 = s.toCharArray(); char[] str2 = m.toCharArray(); int i1 =.原创 2022-03-06 15:08:11 · 88 阅读 · 0 评论 -
对于图算法的一点小总结
import java.util.Map.Entry;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Queue;import java.util.Set;import java.util.List;import java.util.PriorityQueue;import java.util.LinkedList;import java.util..原创 2022-02-28 20:13:37 · 104 阅读 · 0 评论 -
普利姆算法
import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.PriorityQueue;import java.util.Queue;import java.util.LinkedList;import java.util.Comparator;import java.util.Set;public class Pri.原创 2022-02-26 20:58:04 · 48 阅读 · 0 评论 -
克鲁斯卡尔算法
import java.util.Collection;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.PriorityQueue;import java.util.Set;import javax.lang.model.type.UnionType;import java.util.ArrayList;public class Kruskal.原创 2022-02-26 20:10:04 · 52 阅读 · 0 评论 -
并查集结构
import java.util.HashMap;import java.util.List;import java.util.Stack;public class Unioned {//并查集 public static class Element<V> {//先将数据"圈"起来 public V value; public Element(V value) { this.value = value; } } public static class U.原创 2022-02-25 20:57:42 · 46 阅读 · 0 评论 -
使用哈希表实现randompool结构
import java.util.HashMap;public class Randompool { public static class Pool<k> { private HashMap<k, Integer> keyIndexMap; private HashMap<Integer, k> inkedexKeyMap; private int size; Pool() { this.keyIndexMap = .原创 2022-02-21 21:14:05 · 41 阅读 · 0 评论 -
哈希表的一些简单用法
import java.util.HashMap;import java.util.ArrayList;import java.util.List;import java.util.Map.Entry;public class HashMap_ { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("zuo", .原创 2022-02-21 19:51:53 · 85 阅读 · 0 评论 -
利用堆的性质找中位数
import java.util.Arrays;import java.util.Comparator;import java.util.PriorityQueue;public class Madin { public static class MedianHolder { private PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>(new MaxHeapComparat.原创 2022-02-20 14:20:27 · 110 阅读 · 0 评论 -
贪心算法解决收益问题
import java.util.Comparator;import java.util.PriorityQueue;public class IPO { public static class Node { public int p, c; Node(int p, int c) { this.p = p; this.c = c; } } public static class MinComparator implements Compa.原创 2022-02-20 12:20:56 · 181 阅读 · 0 评论 -
利用贪心算法求上课时段的选择
import java.util.Array;import java.util.Comparator;public class BestArr { public static class Program { public int start; public int end; public Program(int start, int end) { this.start = start; this.end = end; } } pu.原创 2022-02-19 16:25:17 · 121 阅读 · 0 评论 -
比较字符串大小的对数器
import java.util.Arrays;import java.util.Comparator;//对数器public class Lowest { public static class MyComparator implements Comparator<String> { public int compare(String s1, String s2) { return (s1 + s2).compareTo(s2 + s1); } }.原创 2022-02-19 15:39:19 · 153 阅读 · 0 评论 -
使用前缀树结构
public class TrieTree { public static class TrieNode { //前缀节点 public int path; public int end; public TrieNode[] nexts; TrieNode() { path = 0; end = 0; nexts = new TrieNode[26]; } } public static class Trie {.原创 2022-02-19 15:14:26 · 54 阅读 · 0 评论 -
拓扑排序法
import java.util.HashMap;import java.util.HashSet;import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.LinkedList;public class Topo { public class Node { public int value; public int in; public int .原创 2022-02-10 20:40:41 · 53 阅读 · 0 评论 -
用通用图结构写DFS算法
import java.HashMap;import java.util.HashSet;import java.util.ArrayList;import java.util.Stack;public class DFS { public class Node { public int value; public int in; public int out; public ArrayList<Node> nexts; public Arr.原创 2022-02-10 16:10:42 · 39 阅读 · 0 评论 -
用一种通用模板实现BFS
import java.util.ArrayList;import java.util.HashSet;import java.util.LinkedList;import java.util.Queue;public class BFS { public static void main(String[] args) {} public class Node { //节点以及存储信息 public int value; public int in; publi.原创 2022-02-10 13:37:52 · 250 阅读 · 0 评论 -
折纸问题(二叉树的中序遍历)
public class PaperFolding { public static void printAllFolds(int N) { printProcess(1, N, true); } public static void printProcess(int i, int N, boolean down) { if (i > M) { return; } printProcess(i + 1, N, true); System.out.pr.原创 2022-02-09 15:17:30 · 59 阅读 · 0 评论 -
将二叉树序列化
import java.util.Queue;public class serialize { public class Node { public int value; public Node left; public Node right; Node(int data) { value = data; } } public static String serialBypre( Node head) { //此函数采用先序遍历将所有节点的值.原创 2022-02-09 14:23:18 · 264 阅读 · 0 评论 -
带父指针的节点找后继节点
public class SuccessorNode { public class Node { public int value; public Node right; public Node left; public Node parent; Node(int value) { this.value = value; } } public static Node getSuccessorNode(Node node) { if (node.原创 2022-02-08 11:20:19 · 49 阅读 · 0 评论 -
寻找祖先节点
import java.util.HashMap;import java.util.HashSet;public class Lowesrcommonanstor { public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; } } //第一种方法 public .原创 2022-02-08 10:56:21 · 439 阅读 · 0 评论 -
判断是否为平衡二叉树
public class IsBalancedTree { public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; } } public static boolean isBalanced(Node head) { return process(head).i.原创 2022-02-06 10:08:47 · 364 阅读 · 0 评论 -
判断是否为查找二叉树
import java.util.LinkedList;public class IsCBT { public class Node { public int value; public Node right; public Node left; Node(int value) { this.value = value; } } public static boolean isCBT(Node head) { if (head == null).原创 2022-02-06 09:13:43 · 154 阅读 · 0 评论 -
判断是否是搜索二叉树
import java.util.LinkedList;import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;public class IsBST { public static class Node { public int value; public Node left; public Node right; Node(int value) { this.value = value.原创 2022-02-05 20:46:27 · 330 阅读 · 0 评论 -
二叉树的宽度优先遍历
import java.util.HashMap;import java.util.LinkedList;public class TreeMaxWidth { public static class Node { public int value; public Node left; public Node right; Node(int data) { this.value = data; } } public static int getMaxSi.原创 2022-02-05 15:20:58 · 187 阅读 · 0 评论 -
递归与非递归打印二叉树
import java.util.Stack;public class prepos { public static void main(String[] args) {} public static class Node { public int value; public Node left; public Node right; Node(int data) { this.value = data; } } //方法一:递归 //先序遍历.原创 2022-02-05 12:01:13 · 140 阅读 · 0 评论 -
两条链表的公共部分
public class FindfirstIntersectNode { public static void main(String[] args) {} public static class Node { public int value; public Node next; Node(int value) { this.value = value; } } public static Node getIntersectNode(Node head1,.原创 2022-02-04 15:02:28 · 498 阅读 · 0 评论 -
复制带随机指针的链表
import java.util.HashMap;public class copylistwithRandom { //复制链表 public static class Node { public int value; public Node next; public Node rand; public Node(int data) { this.value = data; } } //方法一:哈希表 public static Node copyLi.原创 2022-02-04 13:13:55 · 423 阅读 · 0 评论 -
将链表分类成三色旗
import java.security.Policy;public class SmallerEqualBigger { public class Node { public int value; public Node next; Node(int data) { this.value = data; } } //方法一:将它们存到数组中排序 public static Node listPartition1(Node head, int pivot, N.原创 2022-02-03 16:31:39 · 659 阅读 · 0 评论 -
判断链表是否为回文链表
import java.util.Stack;public class pro { public static void main(String[] args) {} public static class Node { //单链表 public int value; public Node next; public Node(int data) { this.value = data; } } //方法一:使用栈 public static bool.原创 2022-02-03 12:54:29 · 309 阅读 · 0 评论