左神算法
hi168
念念不忘,必有回响
展开
-
左神算法5:哈希函数、哈希表、布隆过滤器、一致性哈希、并查集问题和岛结构
1.哈希函数和哈希表 1.1哈希函数特点 经典的哈希函数的输入域是无穷大的 哈希函数的输出域是有穷尽的,虽然很大,但是是个固定的数值 当输入参数固定的情况下,得到的输出参数固定,它不是随机函数,样本固定得到的输出值固定 输入不一样,也有可能得到相同的哈希值(哈希碰撞) 虽然会有两个输入对应同一个输出,但是对于大量的输入对应的输出域基本是平均分的即S域上均匀分布。 推论:对于输入对应的哈希值,使...原创 2020-02-15 13:47:58 · 483 阅读 · 0 评论 -
左神算法4.二叉树及相关习题理解
题目1:实现二叉树的先序、中序、后序遍历[递归方式和非递归方式] 1.1递归实现 public class BinaryTreeWithRecur { public static class Node{ public int value; public Node left; public Node right; publi...原创 2020-02-13 20:28:17 · 328 阅读 · 0 评论 -
左神算法3:栈、队列、链表、矩阵结构及相关习题
一、栈和队列 题目1:用固定的大小的数组实现栈和队列 固定大小的数组实现栈 public class StackWithArray { private int[] array; private int index; //指向即将放入的位置 public StackWithArray(int initialSize){ if(initialSize&l...原创 2020-02-12 18:11:55 · 325 阅读 · 0 评论 -
左神算法2:排序(快排、堆排、桶排、计数与基数排序简单介绍) 荷兰国旗问题 大根堆小根堆 排序稳定性 比较器 相邻两数的最大差值问题
1.荷兰国旗问题 定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。 要求时间复杂度为O(N)、额外空间复杂度为O(1)。 分析:三个指针法:一个指向前头less,一个指向尾部more,一个是当前下标cur。当前下标由指向前面的指针推着前进。 import java.util.Arrays; public class...原创 2020-02-11 18:20:05 · 467 阅读 · 0 评论 -
左神算法1:小和问题和逆序对问题
1. 小和问题 在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。 例子: [1,3,4,2,5] 1左边比1小的数,没有; 3左边比3小的数,1; 4左边比4小的数,1、3; 2左边比2小的数,1; 5左边比5小的数,1、3、4、2; 所以小和为1+1+3+1+1+3+4+2=16 分析: 小和问题,由当前数左侧所有比自己小的数之和相加 ==》转换为 =...原创 2020-02-11 15:13:44 · 628 阅读 · 0 评论