算法学习
learn 11233466
这个作者很懒,什么都没留下…
展开
-
用int数组表示bit数组
在Java泛型中,?:不确定的Java类型T:Java类型K,V:java键值中的key和valueE:Element1、利用哈希表实现一个结构:RandomPool结构package day1;import java.util.HashMap;public class Demo { public static class Pool<K>{//泛型 private HashMap<K,Integer> keyIndexMap;原创 2022-11-03 11:06:43 · 340 阅读 · 0 评论 -
二叉树递归套路题和morris遍历
1、二叉树递归套路 2、Morris遍历原创 2022-11-02 23:27:05 · 110 阅读 · 0 评论 -
Manacher 滑动窗口
例题:有一个整型数组arr和一个大小为w的窗口从数组最左滑到最右,窗口每次向右滑一个位置。字符串str中,最长回文子串的长度求解。原创 2022-10-30 18:13:01 · 99 阅读 · 0 评论 -
岛问题(递归) 并查集 kmp算法
算法原创 2022-10-28 22:18:52 · 401 阅读 · 0 评论 -
一些暴力递归题 java左程云
1、N皇后问题:在N*N的棋盘上要摆N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上(1)package learn;public class NQueens { public static int num1(int n){//返回n个皇后有多少中摆法 if(n<1){ return 0; } int[] record=new int[n];//eg.record[1]=2 表示1行皇后放在了第2列原创 2022-03-26 21:38:47 · 829 阅读 · 0 评论 -
前缀树和贪心算法
1、前缀树:package learn;public class TrieTree { public static class TrieNode{//前缀树节点 public int pass;//经过改点次数 public int end;//以该点作为终止点的字符串有几个 public TrieNode[] nexts;//nexts[0]!=null代表有走向'a'的路 public TrieNode(){原创 2022-03-24 11:49:15 · 179 阅读 · 0 评论 -
图相关的一些算法 java
1、制定图的模板结构:package learn;import java.util.HashMap;import java.util.HashSet;public class Graph { public HashMap<Integer,Node> nodes;//点的编号,实际点 点集 public HashSet<Edge> edges;//边集 public Graph(){//构造函数 nodes=new HashMap&原创 2022-03-20 23:22:28 · 482 阅读 · 0 评论 -
二叉树相关(是否为搜索二叉树、完全二叉树、平衡二叉树、满二叉树等等)
1、判断二叉树是否是搜索二叉树:(左>根>右)方法一:设置一个值记录前一个数,和当前数做比较,(中序遍历)若一直递增则为搜索二叉树,一旦发现当前数没有大于后者,违反了搜索二叉树定义package learn;public class Test { public static class Node{ public int value; public Node left; public Node rig原创 2022-03-14 13:14:10 · 1184 阅读 · 0 评论 -
二叉树遍历+链表补充题
1、题目:给定两个可能有环也可能无环的单链表,头节点head1,head2,请实现一个函数,若2个链表相交,请返回相交的第一个节点,若不相交,返回nullpackage learn;public class Test { public static class Node{ public int value; public Node next; public Node(int value){//构造方法原创 2022-03-13 16:18:30 · 1074 阅读 · 0 评论 -
链表相关 java
1、建立链表:package learn;public class Test { public static class Node{ public int value; public Node next; public Node(int value){//构造方法 this.value=value; } } public static Node add(Node head,int val原创 2022-03-11 20:28:15 · 1124 阅读 · 0 评论 -
堆排序(和一个应用) 桶排序(基数排序)
1、堆排序:法一:package learn;//heapInsert在最后插入元素 向下调整//heapify 从0位置起向下调整public class Test { public static void heapSort(int[] arr) { if(arr==null || arr.length<2)return; for(int i=0;i< arr.length;i++){ heapInsert(arr,i原创 2022-03-09 23:00:43 · 241 阅读 · 0 评论 -
归并排序(小和问题)快速排序
归并排序:package learn;public class Demo { public static void mergeSort(int[] arr){ if(arr==null || arr.length<2){ return; } process(arr,0,arr.length-1); } public static void process(int[] arr,int L,int R){原创 2022-03-07 18:48:50 · 119 阅读 · 0 评论 -
两个栈实现队列 (照着视频敲的)
用栈实现队列public static class TwoStacksQueue{ public Stack<Integer> stackPush; public Stack<Integer> stackPop; public TwoStacksQueue(){//构造方法 stackPush=new Stack<>(); stackPop=new Stac原创 2022-03-06 21:04:06 · 92 阅读 · 0 评论 -
选择、冒泡、插入排序、二分法、异或应用
1、选择排序和冒泡排序的时间复杂度(O(N^2))和数据初始状态无关,无论逆序,正序,或其他此序,操作流程相同package learn;public class Demo { public static void main(String args[]){ int arr[]={9,8,7,6,5}; //selectionSort(arr); bubbleSort(arr); print(arr); } //选原创 2022-03-05 20:17:01 · 365 阅读 · 0 评论