![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java算法与数据结构
gaoyueace
GitHub主页:https://github.com/TimeIvyace
展开
-
Java中判断数组是否为空
一维数组// 一维数组: int[] arrayif(array == null || array.length == 0) return true;二维数组//二维数组: int[][] arrayif((array==null||array.length==0)||(array.length==1&&array[0].length==0)) return tru...原创 2019-03-14 18:02:10 · 44785 阅读 · 4 评论 -
大数据处理相关知识点汇总
大数据处理相关知识点汇总简单统计Map-Reduce概念介绍用Map-Reduce方法统计一篇文章中每个单词出现的个数。海量数据处理解题关键请对10亿个IPV4的ip地址进行排序,每个ip只会出现一次请对10亿人的年龄进行排序。有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数,但是内存限制只有2G。32位无符号整数的范围是0-4294967295。现在有一个正好包含40亿个无符...原创 2019-05-22 21:26:30 · 865 阅读 · 0 评论 -
概率题目汇总
概率题目汇总球队两强相遇蚂蚁碰头男女比例随机函数等概率产生0和1出现概率变为k次方等概率打印概率动态变化-蓄水池抽样算法球队两强相遇8只球队,有3个强队,其余都是弱队,随机把它们分成4组比赛,每组两个队,问两强相遇的概率是多大?解题思路:首先求出8只球队分成4组的方法数:第一队有7种,第二队有5种,第三队有3种,第四队就剩下1种,所以总数为 7 × 5 × 3 × 1 = 105 种。...原创 2019-05-22 20:11:26 · 5939 阅读 · 0 评论 -
组合排序题目汇总(排列组合、卡特兰数和递归思想)
概率组合题目汇总排列组合矩阵走法A必须在B左边站队互不相邻站队分糖果球放入桶吃糖卡特兰数括号匹配进出栈顺序/售票顺序二叉树不同的结构数高矮排列递归思想信封装信排列组合矩阵走法在6×9的方格中,以左上角为起点,右下角为终点,每次只能向下走或者向右走,请问一共有多少种不同的走法。解题思路:一共走13步,必然向下要走五步,向右要走8步。所以在13步中选择5步或者8步进行组合即可,公式如下:...原创 2019-05-22 15:27:26 · 2550 阅读 · 0 评论 -
动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)
动态规划算法示例汇总-Java版组合硬币Java解题—暴力搜索Java解题—记忆搜索Java解题—动态规划(两种写法)跳台阶Java解题—暴力递归Java解题—动态规划矩阵最小路径和Java解题—动态规划最长递增子序列Java解题—动态规划字符串最长公共子序列Java解题—动态规划0-1背包问题Java解题—动态规划最小编辑代价Java解题—动态规划组合硬币给定数组arr,arr中所有的值都为...原创 2019-05-12 23:31:40 · 941 阅读 · 0 评论 -
布隆过滤器概念及其公式推导
布隆过滤器概念及其公式推导布隆过滤器概念数据如何存入布隆过滤器误判情况实际应用面试题公式推导误判概率即失误率的证明和计算其他使用场景公式推导内容转自博客 https://blog.csdn.net/houzuoxin/article/details/20907911布隆过滤器概念数据如何存入布隆过滤器布隆过滤器是由一个很长的二进制矢量和一系列哈希函数组成的。二进制矢量本质是一个位数组:数...原创 2019-05-21 18:48:34 · 7789 阅读 · 7 评论 -
找到二叉树中的最大搜索二叉子树-Java版
题目给定一棵二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这棵子树的头节点。例如,下图中,右树就是左树的最大搜索子树。解题思路—后序遍历:后序遍历二叉树,若当前结点的左右子树都符合搜索二叉树,就返回当前结点;若有左子树(右子树)不符合,则返回右子树根节点(左子树根节点)。需要设置全局变量来保存当前子树的最大值、最小值以及节点数。代码不是特别好理...原创 2019-05-21 14:04:44 · 1297 阅读 · 0 评论 -
将CSDN博客内容保存为PDF
文章转自:https://blog.csdn.net/u010954948/article/details/82843105, 为了方便自己使用,所以在这里保存一下!使用Google Chrome浏览器,在右上角点开设置一栏,找到更多工具—开发者工具,会弹出下图中界面:接下来在Console中黏贴下面一段代码,然后按回车键即可,当前页面的pdf会自动加载出来。(function(){$(...转载 2019-05-20 18:55:33 · 7974 阅读 · 4 评论 -
二叉树知识点总结
二叉树知识点总结二叉树的基本术语定义二叉树的计算公式完全二叉树叶节点计算完全二叉树的节点数计算解题思路—二分思路Java解题—二分思路二叉树的基本术语定义节点的度:指该节点所含子树的个数。叶子节点(终端节点):度为0的节点。兄弟节点:有共同父节点的节点。非终端节点:叶子以外的节点均为非终端节点,即度不为0的节点。阶层(级):树的层级,树的根节点的层级为1,其余节点的阶层为该节点父节点...原创 2019-05-20 17:13:51 · 1679 阅读 · 0 评论 -
Manacher算法解决最长回文子串问题-Java版
Manacher算法解决最长回文子串问题最长回文子串问题,就是给定一个字符串,求出字符串中最长回文子串的长度。回文串就是从头到尾遍历和从尾到头遍历是一模一样的。暴力求解,把字符串所有子串都找出来,再挨个判断是否为回文子串,再记录最长的长度,这个方法当然是可以的,但是复杂度太高!不推荐!所以设计了Manacher算法(马拉车算法)用来解决最长回文子串问题!字符串初始化处理奇数长和偶数长的回...原创 2019-05-15 00:21:04 · 510 阅读 · 0 评论 -
KMP算法基础版和进阶版简单解释-Java版
KMP算法基础版和进阶版简单解释KMP算法KMP算法基础版如何理解getNext中的k = next[k]KMP算法基础版代码KMP算法改进版KMP算法改进版代码KMP算法比较口语化的写了为什么k = next[k]和改进版中next[j] = next[k],以及代码理解中的注意点。KMP算法是一种字符串匹配算法,其关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的...原创 2019-05-14 16:06:58 · 611 阅读 · 0 评论 -
十大排序算法汇总-Java版(由小到大排序)
十大排序算法汇总-Java版(由小到大排序)1.冒泡排序 — O(N^2)2.选择排序 — O(N^2)3.插入排序 — O(N^2)4.归并排序 — O(NlogN)5.快速排序 — O(NlogN)6.堆排序 — O(NlogN)7.希尔排序 — O(NlogN)8.计数排序 — O(N+K)9.桶排序 — O(N+K)10.基数排序 — O(N×K)1.冒泡排序 — O(N^2)publ...原创 2019-05-13 19:59:18 · 1213 阅读 · 1 评论 -
Java实现多叉树的遍历结点个数与插入结点
使用Java简单实现多叉树的遍历结点个数与插入结点多叉树结点定义class Node { public int id; public List<Node> sonList; public int getId() { return id; } public Node(int id,List<Node> sonLis...原创 2019-04-15 10:55:12 · 2145 阅读 · 0 评论 -
Java编程笔试中常用输入格式
每行输入带有空格的数字示例输入62 13 24 35 26 1public static void main(String[] args) { Scanner in = new Scanner(System.in); int count = Integer.parseInt(in.nextLine())-1; int[][] num = new int[count][2];...原创 2019-04-15 09:52:27 · 5076 阅读 · 0 评论 -
堆排序-Java实现
堆排序思想对于给定的n个数据,初始时将n维数组看成一颗二叉树,若需要从小到大排序,将其调整为小顶堆(若从大到小排序,调整为大顶堆),输出堆顶元素,然后将堆的最后一个元素与堆顶元素(二叉树的根节点)互换,再接着将前n-1个元素(不包括最小数)重新调整为一个最小堆,再次交换堆顶与当前堆的最后一个元素,直到当前堆中只剩最后一个元素为止。程序的输出即为从小到大排序的数列。Java实现public c...原创 2019-04-08 10:57:31 · 185 阅读 · 1 评论 -
Java新建链表
LinkedList.javaclass ListNode { int data; ListNode next; public ListNode(int data){ this.data = data; this.next = null; }}public class LinkedList { private Lis...原创 2019-03-15 21:37:01 · 736 阅读 · 0 评论 -
IDEA中无法@Override
在编写程序时,IDEA中的 @Override 一直标红,报错,错误例如:Annotations are not allowed here‘@Override’ not applicable to field在网上查了很多帖子,都是说JDK版本号问题,但是现在普遍都是使用的1.8,所以修改了没有用。其实,只需要恢复IDEA的默认设置即可!!! 亲测有效。恢复之后,重新配置一次就行。...原创 2019-05-31 14:50:35 · 6175 阅读 · 3 评论