自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

原创 路由

路由在不同网段之间转发数据, 需要有路由器的支持,默认情况下, 路由器只知道跟它直连的网段, 非直连的网段需要通过静态路由、动态路由告诉它静态路由: 管理员手动添加路由信息 适用于小规模网络动态路由: 路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息 适用于大规模网络实现4台在不同网段的主机间的通信连接模型:通信流程:路由器0的路由表配置方式:路由表配置①:路由表配置②:路由表配置③:路由表配置④:...

2020-12-01 13:39:02 4

原创 MAC地址_IP地址

MAC地址基础概念:1. 每个网卡都有一个6字节 (48bit) 的MAC地址 (Media Access Control Address)2. 全球唯一, 固话在网卡的ROM中, 由IEEE802标准规定 ① 前3字节: OUI(Organization Unique Identifier), 组织唯一标识符, 由IEEE的注册管理机构分配给厂商 ② 后3字节: 网络接口标识符, 由厂商自行分配当48位全为1时,代表广播地址: FF-FF-FF-FF-FF-FF...

2020-11-27 15:07:28 52

原创 计算机之间的连接方式

计算机之间的连接方式 - 网线直连连接模型:说明: 使用交叉线连接两台计算机, 即可实现两台计算之间的通信计算机之间的连接方式 - 同轴电缆(Coaxial)连接模型:说明: 1. 半双工通信 2. 容易冲突 3. 不安全 4. 一旦某段线路出现问题, 整个通信网络都会瘫痪计算机之间的连接方式 - 集线器(Hub)连接模型(单一集线器):通信流程(单一集线器):连接模型(多集线器):通信流程(多集线器):...

2020-11-26 11:57:42 28

原创 LeetCode_222_完全二叉树的节点个数

链接LeetCode_222_完全二叉树的节点个数题目给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~2h个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6思路: 二分查找 + 位运算对于任意二叉树,都可以通过广度优先搜索或深..

2020-11-24 11:13:50 19

原创 快慢指针判断链表中是否存在环以及查找环的起始位置

判断链表中是否有环? 使用快慢指针, 慢指针一次走一步, 快指针一次走两步, 当快慢指针相遇时,说明链表存在环为什么快指针每次走两步而慢指针每次走一步呢? 因为slow指针和fast指针都会进入环内, 就像在环形跑道内不同位置的两个人;slow指针在后面,fast指针在前面, 但实际上fast指针也在追slow指针, 希望能在环内超slow指针一圈(当超过一圈时会相遇)。那么fast指针总会追上slow指针的;那么fast指针会不会跳过slow指针呢(为什么快慢指针的步骤差必须为1呢)...

2020-11-05 17:21:38 39 1

原创 LeetCode_5_最长回文子串

链接LeetCode_5_最长回文子串题目给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路思路一、动态规划假设字符串("babab")为s, 它的长度为ndp是大小为 n * n 的二维数组, dp[i][j] 表示s[i,j]是否为回文串, 存储true, false...

2020-10-22 16:09:32 20

原创 LeetCode_72_编辑距离

链接LeetCode_72_编辑距离题目给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符示例示例1:输入:word1 = "horse", word2 = "ros"输出:3解释: horse -> rorse (将 'h' 替换为 'r') rorse -> rose (删除 'r') rose ->...

2020-10-21 15:52:57 21

原创 LeetCode_239_滑动窗口最大值

链接LeetCode_239_滑动窗口最大值题目给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位, 返回滑动窗口中的最大值。示例:输入: nums = [1, 3, -1, -3, 5, 3, 6, 7], 和 k = 3输出: [3, 3, 5, 5, 6, 7]解释: 滑动窗口的位置 最大值----------------------...

2020-10-03 15:42:37 19

原创 LeetCode_面试题 16.16. 部分排序

链接LeetCode_面试题 16.16. 部分排序题目给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例:输入:[1, 2, 4, 7, 10, 11, 7, 12, 6, 7, 16, 18, 19]输出:[3,9]思路找出逆序对: 从左侧向右遍历, 寻找逆序对;.

2020-09-26 17:03:26 38

原创 串(Sequence)

串(Sequence)字符串 thank 的前缀(prefix)、真前缀(proper prefix)、后缀(suffix)、真后缀(proper suffix)串匹配算法蛮力(Brute Force) KMP Boyer-Moore Karp-Rabin Sunday蛮力(Brute Force)以字符为单位,从左到右移动模式串,直到匹配成功蛮力算法1蛮力1 – 执行过程蛮力1 – 实现/** * 蛮力匹配1 */public static

2020-09-23 19:44:29 34

原创 LeetCode_152: 乘积最大子数组

链接LeetCode_152: 乘积最大子数组问题给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。题解题解1: 动态规划思路:第i个元素的最优解并不是在第i个元素的最优解基础上实现的;...

2020-09-23 14:35:03 18

原创 跳表(Skip List)

跳表(SkipList)1. 跳表,又叫做跳跃表、跳跃列表,在有序链表的基础上增加了“跳跃”的功能2. Redis中 的 SortedSet、LevelDB 中的 MemTable 都用到了跳表3. 对比平衡树, 跳表的实现和维护会更加简单, 跳表的搜索、删除、添加的平均时间复杂度是 O(logn)使用跳表优化链表跳表的搜索1. 从顶层链表的首元素开始,从左往右搜索,直至找到一个大于或等于目标的元素,或者到达当前层链表的尾部2. 如果该元素等于目标元素,则表明该元素已被找到3.

2020-09-22 20:08:17 36 2

原创 B+树

B + 树B+树是B树的变体,常用于数据库和操作系统的文件系统中MySQL数据库的索引就是基于B+树实现的B+树的特点:(1) B+树分为内部节点(非叶子)、叶子节点2种节点 内部节点只存储key,不存储具体数据 叶子节点存储key和具体数据(2) 所有的叶子节点形成一条有序链表(3) m阶B+树非根节点的元素数量 x (┌ m/2 ┐ ≤ x ≤ m)硬盘盘片(platter)、盘面(side)、读写磁头(head)硬盘一般由多个盘片组成 每个盘片...

2020-09-22 19:48:37 22

原创 LeetCode_494: 目标和

链接LeetCode_494: 目标和问题给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和- 。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3...

2020-09-22 19:27:56 25

原创 LeetCode_376: 摆动序列

目录链接问题题解题解1: 暴力递归题解2: 动态规划题解3: 动态规划优化题解4: 空间复杂度优化 (动态规划最优解)题解5: 贪心链接LeetCode_376: 摆动序列问题如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如,[1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3)是正负交替出现的。相反, [1,4,7,2,5]..

2020-09-18 18:53:40 27

原创 布隆过滤器

目录思考布隆过滤器 (Bloom Filter)布隆过滤器的原理布隆过滤器的误判率布隆过滤器的实现思考1. 如果要经常判断 1 个元素是否存在,会怎么做? 很容易想到使用哈希表(HashSet、HashMap),将元素作为 key 去查找 时间复杂度:O(1),但是空间利用率不高,需要占用比较多的内存资源2. 如果需要编写一个网络爬虫去爬10亿个网站数据,为了避免爬到重复的网站,如何判断某个网站是否爬过? 很显然,HashSet、H...

2020-09-18 11:35:00 24

原创 LeetCode_139: 单词拆分

目录链接问题示例我的题解题解1: 记忆化递归题解2: 动态规划题解3: 动态规划 -- 剪枝优化题解4: 字典树链接LeetCode_139: 单词拆分问题给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例示例 1:输入: s = "leetcode", wordDict = ["le..

2020-09-17 17:35:44 26

原创 算法策略 - 动态规划

目录动态规划(Dynamic Programming)动态规划的常规步骤动态规划的一些相关概念无后效性有后效性算法1 – 找零钱问题状态定义题解– 暴力递归题解– 记忆化搜索题解– 递推思考题: 请输出找零钱的具体方案 (具体是用了哪些面值的硬币)题解– 通用实现优化算法2 – 最大连续子序列和问题状态定义状态转移方程和初始状态题解– 动态规划 – 实现题解– 动态规划 – 优化实现算法3 – 最长上升子序列 (LI...

2020-09-16 16:25:18 57 1

原创 算法策略 - 分治

分治(Divide And Conquer)分治,也就是分而治之。它的一般步骤是(1) 将原问题分解成若干个规模较小的子问题(子问题和原问题的结构一样,只是规模不一样)(2) 子问题又不断分解成规模更小的子问题,直到不能再分解(直到可以轻易计算出子问题的解)(3) 利用子问题的解推导出原问题的解因此,分治策略非常适合用递归, 需要注意的是:子问题之间是相互独立的分治的应用 快速排序 归并排序Karatsuba算法(大数乘法)主定理(Master Theorem)练习1..

2020-09-11 18:07:10 37 1

原创 算法策略 - 贪心

目录贪心(Greedy)练习1 – 最优装载问题(加勒比海盗)问题思路代码实现练习2 – 零钱兑换问题思路代码实现贪心策略中存在的问题注意:练习3 – 0-1背包问题思路实例分析代码实现贪心(Greedy)贪心策略,也称为贪婪策略, 每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全局最优解贪心的应用:哈夫曼树最小生成树算法:Prim、Kruskal最短路径算法:Dijkstra练习1 – 最优装载问题(加勒

2020-09-11 17:25:38 42 1

原创 回溯: N皇后问题

目录回溯 (Back Tracking)N皇后问题 (NQueens)解决思路四皇后 – 回溯法四皇后 – 剪枝(Pruning)八皇后 – 回溯法流程N皇后问题– 实现N皇后问题–优化1N皇后问题–优化2回溯 (Back Tracking)回溯可以理解为: 通过选择不同的岔路口来通往目的地(找到想要的结果)每一步都选择一条路出发, 能进则进, 不能进则退回上一步(回溯), 换一条路再试树、图的深度优先搜索(DFS)、八皇后、走迷宫都是典型的回溯应...

2020-09-09 18:30:27 61

原创 递归(Recursion)

递归(Recursion)递归: 函数(方法)直接或间接调用自身函数的调用过程 函数的递归调用过程 如果递归调用没有终止, 将会一直消耗栈空间, 最终导致栈内存溢出(Stack Overflow), 所以必需要有一个明确的结束递归的条件, 也叫作边界条件、递归基实例分析求 1+2+3+...+(n-1)+n 的和 (n>0)实例1:总消耗时间 T(n)=...

2020-09-08 17:34:51 56 1

原创 最短路径: Dijkstra算法、Bellman-Ford算法、Floyd算法

目录最短路径(Shortest Path)最短路径 – 无权图最短路径 – 负权边最短路径 – 负权环最短路径算法Dijkstra (迪杰斯特拉算法)Dijkstra –思路Dijkstra – 执行过程Dijkstra –代码实现Bellman-Ford (贝尔曼-福特算法)Bellman-Ford–思路Bellman-Ford–思考Bellman-Ford –执行过程Bellman-Ford –代码实现Floyd (弗洛伊德算法...

2020-09-07 12:14:53 137

原创 LeetCode_210: 课程表

链接LeetCode_210:课程表问题现在你总共有 n 门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例示例1:输入: 2, [[1,0]]输出: [0,1]解释:总共有 2 门课程。...

2020-09-05 19:35:17 47

原创 最小生成树: Prim算法、Kruskal算法

目录生成树(Spanning Tree)最小生成树(Minimum Spanning Tree)切分定理Prim算法Prim算法 – 执行过程Prim算法 – 实现Kruskal算法Kruskal算法 – 执行过程Kruskal算法 – 实现Prim算法、Kruskal算法中使用的最小堆和并查集最小堆并查集生成树(Spanning Tree)生成树(Spanning Tree),也称为支撑树, 连通图的极小连通子图, 它含有图中全部的 n 个顶点,..

2020-09-04 16:44:31 74

原创 AOV网(拓扑排序)和AOE网

目录AOV网(Activity On Vertex Network)拓扑排序(Topological Sort)拓扑排序 – 思路拓扑排序 – 实现AOE网 (Activity On Edge Network)AOV网与AOE网的关系AOV网(Activity On Vertex Network)一项大的工程常被分为多个小的子工程, 子工程之间可能存在一定的先后顺序,即某些子工程必须在其他的一些子工程完成后才能开始; 在现代化管理中,人们常用有向图来描述和分析一项工程的计划和

2020-09-04 13:19:18 48

原创

图(Graph)图由顶点(vertex) 和边(edge) 组成,通常表示为 G = (V, E)G表示一个图,V是顶点集, E是边集顶点集V有穷且非空任意两个顶点之间都可以用边来表示它们之间的关系, 边集E可以是空的...

2020-09-03 18:40:38 56

原创 并查集

需求描述假设有n个村庄,有些村庄之间有连接的路,有些村庄之间并没有连接的路设计一个数据结构,能够快速执行2个操作:查询2个村庄之间是否有连接的路 连接2个村庄使用数组、链表、平衡二叉树、集合(Set),查询、连接的时间复杂度都是: O(n)并查集能够办到查询、连接的均摊时间复杂度都是 O(α(n)), α(n) < 5并查集非常适合解决这类“连接”相关的问题基础概念并查集也叫作不相交集合(Disjoint Set)并查集有2个核心操作查找(Find): 查找.

2020-08-21 20:08:16 360

原创 匿名内部类引用的局部变量为什么需要final修饰, 而引用外部类的成员变量就不需要final修饰?

为什么匿名内部类引用的局部变量需要final修饰?在JDK1.8之前, 编写以下代码public class Test { public static void main(String[] args) { String str = "Hello World"; new Thread(){ @Override public void run() { System.out.print

2020-08-20 20:43:02 213 2

原创 10大排序算法

前言排序算法的稳定性:如果相等的2个元素,在排序前后的相对位置保持不变,那么这是稳定的排序算法 排序前:5, 1, 3????, 4, 7, 3???? 稳定的排序: 1, 3????, 3????, 4, 5, 7 不稳定的排序:1, 3????, 3????, 4, 5, 7对自定义对象进行排序时,稳定性会影响最终的排序效果冒泡排序思路: 1. 从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置; 执行完一轮后,最末尾那个元素就是最大的元素 2.

2020-08-14 20:05:36 84

原创 二叉堆

1. 堆(Heap)是一种树状的数据结构, 但是在堆中任意节点的值总是 ≥( ≤ )子节点的值, 并且堆中的元素必须具备可比较性如果任意节点的值总是 ≥ 子节点的值,称为:最大堆、大根堆、大顶堆如果任意节点的值总是 ≤ 子节点的值,称为:最小堆、小根堆、小顶堆2. 二叉堆的逻辑结构就是一棵完全二叉树,所以也叫完全二叉堆, 鉴于完全二叉树的一些特性,二叉堆的底层(物理结构)一般用数组实现即可索引 i 的规律( n 是元素数量) 如果 i = 0 ,它是根节点 如果 i > 0...

2020-08-11 16:50:08 51

原创 HashMap源码深度分析(JDK1.8)

目录1. 网上关于HashMap的一些问题的错误解析2. 关于HashMap中一些设计(1) hash值的计算(2) 索引的计算(3)hash表容量必须为2的等次幂(4) 在链表长度超过8时, 链表可能会转为红黑树(5) 最小红黑树容量: MIN_TREEIFY_CAPACITY3. HashMap相关定义成员变量基本属性默认值链表节点红黑树节点4. HashMap节点的添加: put相关方法1: putTreeVal相关方法2: treeifyB

2020-08-03 13:55:19 104

原创 红黑树

红黑树的五条性质:1. 节点是 RED 或者 BLACK2. 根节点是 BLACK3. 叶子节点(外部节点,空节点)都是 BLACK4. RED 节点的子节点都是 BLACK RED 节点的 parent 都是 BLACK 从根节点到叶子节点的所有路径上不能有 2 个连续的 RED 节点5. 从任一节点到叶子节点的所有路径都包含相同数目的 BLACK 节点红黑树的等价变换...

2020-07-24 15:53:43 92

原创 B-树

B树的特点B树是一种平衡的多路搜索树,多用于文件系统、数据库的实现1 个节点可以存储超过 2 个元素、可以拥有超过 2 个子节点 拥有二叉搜索树的一些性质 平衡,每个节点的所有子树高度一致 比较矮m阶B树的性质(m≥2)假设一个节点存储的元素个数为 x 根节点:1 ≤ x ≤ m − 1 非根节点:┌ m/2 ┐ − 1 ≤ x ≤ m − 1 (┐为向上取整)如果有子节点,子节点个数 y = x + 1 根节点...

2020-07-24 10:48:45 55

原创 AVL树

AVL树是最早发明的自平衡二叉搜索树之一平衡因子(Balance Factor):某结点的左右子树的高度差AVL树的特点: 每个节点的平衡因子只可能是 1、0、-1(绝对值 ≤ 1,如果超过 1,称之为“失衡”) 每个节点的左右子树高度差不超过 1 搜索、添加、删除的时间复杂度是 O(logn)AVL树失衡情况分析:BF: Balance Factor(该节点的平衡因子)H: Height(节点高度)原始子树1:添加节点n情况1(平衡):...

2020-07-22 11:50:22 72

原创 二叉树

目录二叉树定义1. 遍历:1.1 先序遍历递归非递归1.2 中序遍历递归非递归1.3 后序遍历递归非递归1.3 层序遍历非递归2. 删除节点2.1 前驱节点2.2 后继节点2.3 删除节点3. 高度4. 添加5. 是否为完全二叉树二叉树定义private static class Node<E> { E element; Node<E> left; Node<E> right;

2020-07-21 19:01:31 67

原创 LeetCode_链表系列

问题:给定一个链表,判断链表中是否有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。示例 3:输入:head = [1], pos = -1输出:false解释:链表中没有环。题解:思路: 在一个环型操场上, 两个不同位置的人在跑步, 一个跑的.

2020-07-14 16:35:32 52

原创 IE8中使用html()方法失效问题解决

在IE8中使用html()方法给元素设置值时失效问题可能原因: IE8在页面加载时不会主动初始化console实例, 如果使用console.log(),会导致js加载出错, 浏览器直接停止加载js了;如果是上面的原因, 那么在页面加载时打开开发者页面(F12), 然后再操作页面, html()方法就会执行正常; 因为打开开发者窗口后, 浏览器就会去初始化console实例...

2020-04-28 11:38:29 167

原创 Kafka环境搭建

一. Kafka0.8集群部署安装步骤1. 下载Kafka安装包:http://kafka.apache.org/downloads2. 上传安装包3. 解压4. 修改配置文件 config/server.propertiesbroker.id=0host.name=node1log.dirs=/data/kafkazookeeper.connect=node1:218...

2020-03-16 10:40:54 76

原创 RocketMQ源码部署

目录1. 下载, 解压2. 配置环境变量3. 导入IDEA4. 修改配置文件broker-a.properties5. 启动5.1 启动NameSrv5.2 启动Broker6. 启动测试示例6.1 启动Consumer示例6.2 启动Producer示例7. 问题总结问题一: Broker启动失败, 提示Process finish with ex...

2020-03-14 18:50:48 292

JVM指令集.zip

在学习JVM时.指令集必不可少; 该资源有word和pdf两种模式

2019-07-22

spring4.2.4源码

Spring_4.2.4源码, 其中IOC和AOP模块已经编译过,可以直接导入ecplise使用, 并且这两部分的源码里面是做的有详细笔记的! ! ! 是可以辅助理解源码的

2019-04-14

hadoop-2.8.1-win-x64-bin(winutils)

windows平台下开发时所需的执行文件. 基于hadoop2.8.1版源码,日期20180605,编译的是win平台,Release,x64.

2018-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除