diff --git "a/2024/03/30/hexo\346\220\255\345\273\272\345\215\232\345\256\242/index.html" "b/2024/03/30/hexo\346\220\255\345\273\272\345\215\232\345\256\242/index.html" index 6066cca..9b17b04 100644 --- "a/2024/03/30/hexo\346\220\255\345\273\272\345\215\232\345\256\242/index.html" +++ "b/2024/03/30/hexo\346\220\255\345\273\272\345\215\232\345\256\242/index.html" @@ -175,7 +175,7 @@ document.addEventListener('pjax:send', () => { preloader.initLoading() }) document.addEventListener('pjax:complete', () => { preloader.endLoading() }) } -})()

hexo搭建博客

博客搭建过程

安装前的准备

注意事项

以下所有的命令没有特别说明都可以在cmd或者powershell中运行,如果无法运行请使用管理员模式进行

+})()

hexo搭建博客

博客搭建过程

安装前的准备

注意事项

以下所有的命令没有特别说明都可以在cmd或者powershell中运行,如果无法运行请使用管理员模式进行

下载并安装node.js

  • 官网下载:https://nodejs.org/en/download
  • 安装后l验证:node -v
  • @@ -276,7 +276,7 @@

    主题美化

    这里贴一下主题作者关于主题配置的博客,完全可以按照作者的攻略博客来美化你的博客:butterfly安装文档,我就是按照作者的博客来进行美化的。

    总结

    这是本人搭建博客的过程,整个过程应该不会有太大的问题,如若遇到任何问题,请先去bing一下,寻找解决办法,如果没法解决,欢迎留言我们一起解决。最后,感谢你的阅读,谢谢捏!

    -
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/03/30/hexo%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus

评论
ValineDisqus

git工作流

git工作流

git

-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/07/15/git%E5%B7%A5%E4%BD%9C%E6%B5%81/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

git工作流

git工作流

git

+
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/07/15/git%E5%B7%A5%E4%BD%9C%E6%B5%81/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

hexo图片插入失败的解决方法

解决方法

本人根据hexo官方文档来解决问题。

+})()

hexo图片插入失败的解决方法

解决方法

本人根据hexo官方文档来解决问题。

  1. 在博客所在文件夹的目录中找到_config.yml,并将文件中的post_asset_folder选项设置为true来打开。

    @@ -195,7 +195,7 @@

    启用后,资源图片将会被自动解析为其对应文章的路径。 例如: image.jpg 位置为 /2020/01/02/foo/image.jpg ,这表示它是 /2020/01/02/foo/ 文章的一张资源图片, ![](image.jpg) 将会被解析为 <img src="/2020/01/02/foo/image.jpg">

-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/07/17/hexo%E5%9B%BE%E7%89%87%E6%8F%92%E5%85%A5%E5%A4%B1%E8%B4%A5%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

计算机网络

计算机网络概述

定义

计算机网络主要是由一些通用的,可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或者视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。

+})()

计算机网络

计算机网络概述

定义

计算机网络主要是由一些通用的,可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或者视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。

分类

  1. 交换方式:电路交换,分组交换,报文交换
  2. 使用者:公用网(因特网),专用网(军队,铁路,电力,银行)
  3. @@ -706,7 +706,7 @@

    -

文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/09/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
目录
  1. 1. 计算机网络概述
    1. 1.1. 定义
    2. 1.2. 分类
    3. 1.3. 三种数据交换方式
      1. 1.3.1. 电路交换
      2. 1.3.2. 分组交换
      3. 1.3.3. 报文交换
      4. 1.3.4. 三种交换方式的对比
    4. 1.4. 计算机网络性能指标
      1. 1.4.1. 带宽
      2. 1.4.2. 吞吐量
      3. 1.4.3. 时延
      4. 1.4.4. 时延带宽积
      5. 1.4.5. 往返时间
      6. 1.4.6. 利用率
      7. 1.4.7. 丢包率
    5. 1.5. 计算机网络体系结构
      1. 1.5.1. 计算机网络体系结构分层的必要性
      2. 1.5.2. 计算机网络体系结构分层思想举例
      3. 1.5.3. 计算机网络体系结构中的专业术语
  2. 2. 物理层
    1. 2.1. 物理层接口特性
    2. 2.2. 传输媒体
      1. 2.2.1. 传输媒体的分类
        1. 2.2.1.1. 导向型传输媒体
        2. 2.2.1.2. 非导向型传输媒体
      2. 2.2.2. 传输方式
    3. 2.3. 编码和调制
      1. 2.3.1. 编码和调制的基本概念
      2. 2.3.2. 常用编码方式
      3. 2.3.3. 基本的带通调制方法和混合调制方法
    4. 2.4. 信道
      1. 2.4.1. 造成信号失真的主要因素
      2. 2.4.2. 奈氏准则
      3. 2.4.3. 香农公式
    5. 2.5. 信道复用
      1. 2.5.1. 信道复用技术的基本原理
      2. 2.5.2. 常见的信道复用技术
  3. 3. 数据链路层
    1. 3.1. 地位
    2. 3.2. 链路,数据链路和帧
    3. 3.3. 数据链路层的三个重要问题
      1. 3.3.1. 封装成帧
      2. 3.3.2. 透明传输
      3. 3.3.3. 差错检测
        1. 3.3.3.1. 奇偶校验
        2. 3.3.3.2. 循环冗余校验
      4. 3.3.4. 可靠传输
        1. 3.3.4.1. 停止-等待(Stop-and-Wait,SW)协议
        2. 3.3.4.2. 回退N帧(Go-back-N,GBN)协议
        3. 3.3.4.3. 选择重传(Selective Repeat,SR)协议
    4. 3.4. 点对点协议PPP
      1. 3.4.1. 概述
      2. 3.4.2. PPP的帧格式
      3. 3.4.3. PPP帧的透明传输
      4. 3.4.4. PPP的工作状态
    5. 3.5. 共享式以太网
      1. 3.5.1. 网络适配器
      2. 3.5.2. MAC地址
      3. 3.5.3. CSMA/CD协议
      4. 3.5.4. 共享式以太网的争用期
      5. 3.5.5. 共享式以太网的退避算法
      6. 3.5.6. 共享式以太网的信道利用率
      7. 3.5.7. 使用集线器的共享式以太网
      8. 3.5.8. 在物理层扩展以太网
      9. 3.5.9. 使用网桥在数据链路层扩展以太网
        1. 3.5.9.1. 透明网桥
        2. 3.5.9.2. 透明网桥的生成树协议STP
    6. 3.6. 交换式以太网
      1. 3.6.1. 以太网交换机
    7. 3.7. 以太网的MAC帧格式
    8. 3.8. 虚拟局域网VLAN
      1. 3.8.1. 虚拟局域网VLAN的实现机制
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
目录
  1. 1. 计算机网络概述
    1. 1.1. 定义
    2. 1.2. 分类
    3. 1.3. 三种数据交换方式
      1. 1.3.1. 电路交换
      2. 1.3.2. 分组交换
      3. 1.3.3. 报文交换
      4. 1.3.4. 三种交换方式的对比
    4. 1.4. 计算机网络性能指标
      1. 1.4.1. 带宽
      2. 1.4.2. 吞吐量
      3. 1.4.3. 时延
      4. 1.4.4. 时延带宽积
      5. 1.4.5. 往返时间
      6. 1.4.6. 利用率
      7. 1.4.7. 丢包率
    5. 1.5. 计算机网络体系结构
      1. 1.5.1. 计算机网络体系结构分层的必要性
      2. 1.5.2. 计算机网络体系结构分层思想举例
      3. 1.5.3. 计算机网络体系结构中的专业术语
  2. 2. 物理层
    1. 2.1. 物理层接口特性
    2. 2.2. 传输媒体
      1. 2.2.1. 传输媒体的分类
        1. 2.2.1.1. 导向型传输媒体
        2. 2.2.1.2. 非导向型传输媒体
      2. 2.2.2. 传输方式
    3. 2.3. 编码和调制
      1. 2.3.1. 编码和调制的基本概念
      2. 2.3.2. 常用编码方式
      3. 2.3.3. 基本的带通调制方法和混合调制方法
    4. 2.4. 信道
      1. 2.4.1. 造成信号失真的主要因素
      2. 2.4.2. 奈氏准则
      3. 2.4.3. 香农公式
    5. 2.5. 信道复用
      1. 2.5.1. 信道复用技术的基本原理
      2. 2.5.2. 常见的信道复用技术
  3. 3. 数据链路层
    1. 3.1. 地位
    2. 3.2. 链路,数据链路和帧
    3. 3.3. 数据链路层的三个重要问题
      1. 3.3.1. 封装成帧
      2. 3.3.2. 透明传输
      3. 3.3.3. 差错检测
        1. 3.3.3.1. 奇偶校验
        2. 3.3.3.2. 循环冗余校验
      4. 3.3.4. 可靠传输
        1. 3.3.4.1. 停止-等待(Stop-and-Wait,SW)协议
        2. 3.3.4.2. 回退N帧(Go-back-N,GBN)协议
        3. 3.3.4.3. 选择重传(Selective Repeat,SR)协议
    4. 3.4. 点对点协议PPP
      1. 3.4.1. 概述
      2. 3.4.2. PPP的帧格式
      3. 3.4.3. PPP帧的透明传输
      4. 3.4.4. PPP的工作状态
    5. 3.5. 共享式以太网
      1. 3.5.1. 网络适配器
      2. 3.5.2. MAC地址
      3. 3.5.3. CSMA/CD协议
      4. 3.5.4. 共享式以太网的争用期
      5. 3.5.5. 共享式以太网的退避算法
      6. 3.5.6. 共享式以太网的信道利用率
      7. 3.5.7. 使用集线器的共享式以太网
      8. 3.5.8. 在物理层扩展以太网
      9. 3.5.9. 使用网桥在数据链路层扩展以太网
        1. 3.5.9.1. 透明网桥
        2. 3.5.9.2. 透明网桥的生成树协议STP
    6. 3.6. 交换式以太网
      1. 3.6.1. 以太网交换机
    7. 3.7. 以太网的MAC帧格式
    8. 3.8. 虚拟局域网VLAN
      1. 3.8.1. 虚拟局域网VLAN的实现机制
最新文章

shell

man chmod 是一个用于查看 chmod 命令手册页的指令。让我为您解释一下这个命令的主要内容:

+})()

shell

man chmod 是一个用于查看 chmod 命令手册页的指令。让我为您解释一下这个命令的主要内容:

  1. 命令用途:
    chmod 用于更改文件或目录的权限。

  2. @@ -298,7 +298,7 @@

    仅更新访问时间:
    1
    touch -a existingfile.txt

这就是 touch 命令的基本用法。如果你需要更详细的内容或特定功能的说明,可以告诉我!

-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/09/28/shell/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus

评论
ValineDisqus

排序

快速排序法

公告
小白一枚,欢迎大佬指点

二分

整数二分

要根据题目确定边界的等号是否取到

+})()

二分

整数二分

要根据题目确定边界的等号是否取到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//check是根据题目定的一个判断方法
public static boolean check(int x) {
/* ... */
}
//闭区间写法
public static int bsearch(int l, int r) {
while (l <= r) {
//这样算mid是为了防止溢出问题
int mid = l + (r - l) / 2;
if(check(mid)) r = mid - 1;
else l = mid + 1;
}
return 1;
}

浮点数二分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//check是根据题目定的一个判断方法
public static boolean check(int x) {
/* ... */
}
public static double bsearch3(double l, double r) {
//eps表示精度,取决于题目对精度的要求
final double eps = 1e-6;
while (r - l > eps) {
double mid = l + (r - l) / 2;
if (check(mid)) r = mid;
else l = mid;
}
return 1;
}
-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/17/%E4%BA%8C%E5%88%86/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点

前缀和

前缀和

一维前缀和

1
2
3
4
S[0] = 0
S[i] = a[0] + a[1] + a[2] + ... + a[i - 1]
S[i + 1] = S[i] + a[i]
a[l] + ... + a[r] = S[r + 1] - S[l]
+})()

前缀和

前缀和

一维前缀和

1
2
3
4
S[0] = 0
S[i] = a[0] + a[1] + a[2] + ... + a[i - 1]
S[i + 1] = S[i] + a[i]
a[l] + ... + a[r] = S[r + 1] - S[l]

二维前缀和

1
2
3
S[i, j] = 第i行j列格子左上部分所有元素的和
以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:
S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]
@@ -184,7 +184,7 @@

差分二维差分

1
2
给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c:
S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, S[x2 + 1, y2 + 1] += c
-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/18/%E5%89%8D%E7%BC%80%E5%92%8C/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus

评论
ValineDisqus

抓包初体验

Wireshark过滤规则

按ip地址过滤

想看源ip为xx的包

过滤条件中输入:ip.src==源ip地址

+})()

抓包初体验

Wireshark过滤规则

按ip地址过滤

想看源ip为xx的包

过滤条件中输入:ip.src==源ip地址

自己电脑的ip地址查询:ipconfig /all

想看目标ip为xx的包

过滤条件中输入:ip.dst==目标ip地址

想看源或目标ip为xx的包

过滤条件中输入:ip.addr==ip地址

@@ -216,7 +216,7 @@

文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/21/%E6%8A%93%E5%8C%85%E5%88%9D%E4%BD%93%E9%AA%8C/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar


评论
ValineDisqus

评论
ValineDisqus

位运算

位运算

1
2
3
4
5
eg: n的二进制表示中第k位是几
1. 先把第k位移到最后一位 n>>k
2. 看个位是几 x&1

1 + 2 => 求n的第k位数字: n >> k & 1
+})()

位运算

位运算

1
2
3
4
5
eg: n的二进制表示中第k位是几
1. 先把第k位移到最后一位 n>>k
2. 看个位是几 x&1

1 + 2 => 求n的第k位数字: n >> k & 1

返回n的最后一位:lowbit(n) = n & -nimage-20241022212805257

-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/22/%E4%BD%8D%E8%BF%90%E7%AE%97/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

双指针算法

双指针算法

1
2
3
4
5
6
7
8
9
for (int i = 0, j = 0; i < n; i ++ )
{
while (j < i && check(i, j)) j ++ ;

// 具体问题的逻辑
}
常见问题分类:
(1) 对于一个序列,用两个指针维护一段区间
(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作
+})()

双指针算法

双指针算法

1
2
3
4
5
6
7
8
9
for (int i = 0, j = 0; i < n; i ++ )
{
while (j < i && check(i, j)) j ++ ;

// 具体问题的逻辑
}
常见问题分类:
(1) 对于一个序列,用两个指针维护一段区间
(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作
-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/22/%E5%8F%8C%E6%8C%87%E9%92%88%E7%AE%97%E6%B3%95/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

区间合并

区间合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private static int[][] merge(int[][] a) {  
if (a == null || a.length == 0 || a[0].length == 0) {
return new int[0][2];
}
Arrays.sort(a, Comparator.comparingInt(item -> item[0]));
List<int[]> res = new ArrayList<>();
for (int[] arr : a) {
int left = arr[0];
int right = arr[1];
if (res.size() == 0 || res.get(res.size() - 1)[1] < left) {
res.add(new int[]{left, right});
} else {
int newRight = Math.max(res.get(res.size() - 1)[1], left);
res.set(res.size() - 1, new int[]{res.get(res.size() - 1)[0], newRight});
}
}
return res.toArray(new int[res.size()][2]);
}

+})()

区间合并

区间合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private static int[][] merge(int[][] a) {  
if (a == null || a.length == 0 || a[0].length == 0) {
return new int[0][2];
}
Arrays.sort(a, Comparator.comparingInt(item -> item[0]));
List<int[]> res = new ArrayList<>();
for (int[] arr : a) {
int left = arr[0];
int right = arr[1];
if (res.size() == 0 || res.get(res.size() - 1)[1] < left) {
res.add(new int[]{left, right});
} else {
int newRight = Math.max(res.get(res.size() - 1)[1], left);
res.set(res.size() - 1, new int[]{res.get(res.size() - 1)[0], newRight});
}
}
return res.toArray(new int[res.size()][2]);
}

-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/23/%E5%8C%BA%E9%97%B4%E5%90%88%E5%B9%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

离散化

离散化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 去重 + 排序  
List<Integer> distinctSorterAlls = alls.stream().distinct().sorted().collect(Collectors.toList());

// 离散化映射,把离散化的下标映射到连续的数组下标 + 1for (int[] item : add) {
int index = Collections.binarySearch(distinctSorterAlls, item[0]) + 1;
a[index] += item[1];
}

// 前缀和
for (int i = 0; i < distinctSorterAlls.size(); i++) {
s[i + 1] = s[i] + a[i];
}

// 离散化映射,把离散化的下标映射到连续的数组下标 + 1for (int[] item : query) {
int l = Collections.binarySearch(distinctSorterAlls, item[0]) + 1;
int r = Collections.binarySearch(distinctSorterAlls, item[1]) + 1;
System.out.println(s[r + 1] - s[l]);
}
+})()

离散化

离散化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 去重 + 排序  
List<Integer> distinctSorterAlls = alls.stream().distinct().sorted().collect(Collectors.toList());

// 离散化映射,把离散化的下标映射到连续的数组下标 + 1for (int[] item : add) {
int index = Collections.binarySearch(distinctSorterAlls, item[0]) + 1;
a[index] += item[1];
}

// 前缀和
for (int i = 0; i < distinctSorterAlls.size(); i++) {
s[i + 1] = s[i] + a[i];
}

// 离散化映射,把离散化的下标映射到连续的数组下标 + 1for (int[] item : query) {
int l = Collections.binarySearch(distinctSorterAlls, item[0]) + 1;
int r = Collections.binarySearch(distinctSorterAlls, item[1]) + 1;
System.out.println(s[r + 1] - s[l]);
}
-
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/10/23/%E7%A6%BB%E6%95%A3%E5%8C%96/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

RPC框架

文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/11/07/RPC%E6%A1%86%E6%9E%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化

RPC框架

文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/11/07/RPC%E6%A1%86%E6%9E%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
最新文章

java中泛型浅淡

Java中的泛型(Generics)是一种支持泛型编程的工具,它允许程序员在编译时提供类型信息,从而提高代码的复用性和安全性。泛型的应用统一了数据类型,把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,应为在编译阶段类型就能确定下来。

+})()

java中泛型浅淡

Java中的泛型(Generics)是一种支持泛型编程的工具,它允许程序员在编译时提供类型信息,从而提高代码的复用性和安全性。泛型的应用统一了数据类型,把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,应为在编译阶段类型就能确定下来。

泛型中的细节


评论
ValineDisqus

评论
ValineDisqus

java单列集合学习

    +})()

    java单列集合学习

    文章作者: Czar
    文章链接: http://czarparatrooper.github.io/2024/11/10/java%E5%8D%95%E5%88%97%E9%9B%86%E5%90%88%E5%AD%A6%E4%B9%A0/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

    评论
    ValineDisqus

    评论
    ValineDisqus
加载中...

二叉树浅谈

二叉树

二叉树:在二叉树中,任意节点的度<=2

+

二叉树分类:

+
    +
  • 二叉查找树
  • +
  • 平衡二叉树
  • +
  • 红黑树
  • +
+

二叉查找树

    +
  1. 每一个节点上最多有两个子节点
  2. +
  3. 任意节点左子树上的值都小于当前节点
  4. +
  5. 任意节点右子树上的值都大于当前节点
  6. +
+

小的存左边,大的存右边,一样的不存

+

遍历方式:

+
    +
  1. 序遍历:当前节点,左子节点,右子节点
  2. +
  3. 序遍历:左子节点,当前节点,右子节点
  4. +
  5. 序遍历:左子节点,右子节点,当前节点
  6. +
  7. 层序遍历:一层一层地去遍历
  8. +
+

平衡二叉树

任意节点左右字数高度差不超过1

+

旋转机制

    +
  • 左左 -> 右旋
  • +
  • 左右 -> 局部左旋再右旋
  • +
  • 右右 -> 左旋
  • +
  • 右左 -> 局部右旋再左旋
  • +
+

红黑树

添加节点的规则:

+
    +
  1. 每一个节点是红色或黑色
  2. +
  3. 根节点必须是黑色
  4. +
  5. 叶节点(Nil)是黑色
  6. +
  7. 两个红色节点不能相连
  8. +
  9. 任意节点到所有后代叶节点的简单路径上,黑色节点数量相同
  10. +
+

节点添加规律:

+

默认添加的节点是红色的

+
    +
  • +
+

​ 直接变成黑色

+
    +
  • 非根

    +
      +
    • 父黑

      +

      不需要任何操作

      +
    • +
    • 父红

      +
        +
      • 叔叔红
          +
        • 将父节点设置为黑,叔叔节点设置为黑
        • +
        • 祖父节点设置为红
        • +
        • 如果祖父节点是根,再变回红
        • +
        • 如果祖父节点非根,再将祖父节点设置为当前节点判断
        • +
        +
      • +
      • 叔叔黑,当前节点为父的右子节点
          +
        • 把父节点作为当前节点并左旋,再进行判断
        • +
        +
      • +
      • 叔叔黑,当前节点为父的左子节点
          +
        • 将父节点设置为黑
        • +
        • 将祖父节点设置为红
        • +
        • 以祖父节点为支点右旋
        • +
        +
      • +
      +
    • +
    +
  • +
+
文章作者: Czar
文章链接: http://czarparatrooper.github.io/2024/11/12/%E4%BA%8C%E5%8F%89%E6%A0%91%E6%B5%85%E8%B0%88/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czar

评论
ValineDisqus
\ No newline at end of file diff --git a/404.html b/404.html index f351344..05a97d2 100644 --- a/404.html +++ b/404.html @@ -52,7 +52,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-11-11 22:11:55' + postUpdate: '2024-11-12 17:10:23' }
文章总览 - 1
2024
hexo搭建博客
hexo搭建博客
公告
小白一枚,欢迎大佬指点
文章总览 - 1
2024
hexo搭建博客
hexo搭建博客
文章总览 - 2
2024
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
公告
小白一枚,欢迎大佬指点
文章总览 - 2
2024
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
文章总览 - 2
2024
shell
shell
计算机网络
计算机网络
公告
小白一枚,欢迎大佬指点
文章总览 - 2
2024
shell
shell
计算机网络
计算机网络
文章总览 - 8
2024
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
二分
二分
排序
排序
公告
小白一枚,欢迎大佬指点
文章总览 - 8
2024
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
二分
二分
排序
排序
文章总览 - 3
2024
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
公告
小白一枚,欢迎大佬指点
文章总览 - 4
2024
二叉树浅谈
二叉树浅谈
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
文章总览 - 16
2024
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
二分
二分
公告
小白一枚,欢迎大佬指点
文章总览 - 17
2024
二叉树浅谈
二叉树浅谈
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
文章总览 - 16
2024
排序
排序
shell
shell
计算机网络
计算机网络
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
hexo搭建博客
hexo搭建博客
公告
小白一枚,欢迎大佬指点
文章总览 - 17
2024
二分
二分
排序
排序
shell
shell
计算机网络
计算机网络
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
hexo搭建博客
hexo搭建博客
文章总览 - 16
2024
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
二分
二分
公告
小白一枚,欢迎大佬指点
文章总览 - 17
2024
二叉树浅谈
二叉树浅谈
java单列集合学习
java单列集合学习
java中泛型浅淡
java中泛型浅淡
RPC框架
RPC框架
区间合并
区间合并
离散化
离散化
位运算
位运算
双指针算法
双指针算法
抓包初体验
抓包初体验
前缀和
前缀和
文章总览 - 16
2024
排序
排序
shell
shell
计算机网络
计算机网络
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
hexo搭建博客
hexo搭建博客
公告
小白一枚,欢迎大佬指点
文章总览 - 17
2024
二分
二分
排序
排序
shell
shell
计算机网络
计算机网络
hexo图片插入失败的解决方法
hexo图片插入失败的解决方法
git工作流
git工作流
hexo搭建博客
hexo搭建博客

评论
ValineDisqus
公告
小白一枚,欢迎大佬指点

评论
ValineDisqus

来自Czar的留言:

有什么想问的?
有什么想说的?
有什么想吐槽的?
哪怕是有什么想吃的,都可以告诉我哦~

自动书记人偶竭诚为您服务!


评论
ValineDisqus
公告
小白一枚,欢迎大佬指点
java单列集合学习