JAVA
苏格拉没有底q
这个作者很懒,什么都没留下…
展开
-
kmp
public static int[] getNextArray(char[] str2) { if (str2.length == 1) { // 如果长度只有1,那么认为规定第一个为-1 return new int[] {-1}; } int []next = new int[str2.length]; next[0] = -1; // 认为规定next数组前...原创 2019-11-03 18:45:43 · 150 阅读 · 0 评论 -
堆排序
import java.util.Arrays;public class HearSort { public static void heapSort(int []arr) { if (arr == null || arr.length < 2) return; for (int i = 0;i < arr.length;++i) { heapInsert(a...原创 2019-11-02 14:52:20 · 114 阅读 · 0 评论 -
给定数组求最大异或和
题意:给定一个数组,找出其中最大异或和。这个异或和可能是0~i的,也可能是j到i的当然我们可以用双层循环的方式,得出每一个0到i-1的异或和,和每一个j到i-1的异或和。这和冒泡排序的结构差不多,但是复杂度就是O(n2)。先抛出一些结论:条件: E1^E2=E3结论:E1^E3=E2 ,E2^E3=E1我们就利用【0到i-1的异或和】(异或)【0到j-1的异或和】=【j到i-1的异或和...原创 2019-08-11 09:28:44 · 1429 阅读 · 0 评论 -
求解给定的数学式字符串
public static int getValue(String str) { return value(str.toCharArray(),0)[0]; } //back[0]返回的是计算结果 //back[1]返回的计算到的位置 public static int [] value(char [] str,int i) { LinkedList<Stri...原创 2019-08-08 22:58:32 · 120 阅读 · 0 评论 -
连续子序列求和的最大值
输入一个整数序列(浮点数序列也适合本处讲的算法),求出其中连续子序列求和的最大值。public static int maxLength(int []arr,int k) { if(arr==null||arr.length==0) { return 0; } HashMap<Integer,Integer>map=new HashMap<Integ...原创 2019-08-01 21:27:42 · 684 阅读 · 0 评论 -
实现LRU
public static class Node<V>{ public V value; public Node<V> last; public Node<V> next; public Node(V value) { this.value=value; } } public static class NodeD...原创 2019-08-05 22:18:00 · 84 阅读 · 0 评论 -
LFU实现
public static class Node{ //HashMap<Integer, Node> records,key是用来查找 public Integer key; public Integer value; //HashMap<Node, NodeList> heads是根据times来排序的 public Integer ...原创 2019-08-07 23:14:59 · 661 阅读 · 0 评论 -
输出大楼轮廓线问题
分析一下:public static class Node{ public boolean isUp;//记录是向上还是向下 public int posi;//记录位置 public int h;//记录高度 public Node(boolean bORe,int position,int height) //布尔值true为上,false为下 { ...原创 2019-08-01 09:29:19 · 230 阅读 · 0 评论 -
返回最大搜索二叉子树的大小
题目:给定一棵二叉树的头节点head,请返回最大搜索二叉子树的大小public static class Node{ public int value; public Node left; public Node right; public Node(int data) { this.value=data; } } public static ...原创 2019-08-02 21:01:27 · 337 阅读 · 0 评论 -
Morris遍历
先序遍历中序遍历原创 2019-07-17 23:08:32 · 150 阅读 · 0 评论 -
单调栈玩法---烽火台
具体问题是:n 个 烽火台围成一个圈,任意两个烽火台只要中间的烽火台比他们两个都低就能看见彼此,当然相邻的肯定能看见对面,求能看见彼此的对数。我们第一步就是找出这一圈数值中的最大值。为什么?因为这样我们就能确保后面的数向左至少和最大值能配成一对烽火台,我们只要观察右边的即可。public static long communications(int [] arr) { if(a...原创 2019-07-16 20:44:43 · 405 阅读 · 1 评论 -
BFPRT算法
第一步:将给定的一串数字以5为一组,分好组第二步:将分组的数据排好序第三步:创建中位数数组,获取每个分组的中位数第四步:循环第三步:直到中位数数组中只有一个数,那就是我们需要的比较数字第五步:利用partition,小于该数的放左边,等于放中间,大于放右边第六步:循环第五步,得到我们想要的第i个数public static int getMinKNumsByBFPRT(int ...原创 2019-07-15 20:55:20 · 378 阅读 · 0 评论 -
求最大子矩阵的大小
maxArea调用了maxRecFormBoottom函数,就是下面所介绍的public static int maxRecSize(int [][]map) { if(map==null||map.length==0||map[0].length==0) { return 0; } int maxArea=0; int [] height=new int[...原创 2019-07-15 19:52:58 · 491 阅读 · 0 评论