自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不搞数学的汤老师

你这个年龄段 你这个阶段 你睡得着觉?有点出息没有

  • 博客(125)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux没有安装 telnet 如何测网络是否连通?

【代码】Linux没有安装 telnet 如何测网络是否连通?

2024-02-24 14:18:10 187

原创 定位 CPU 高负载 Java 线程

将 4432 堆栈信息导出并检索 4435 (jstack 导出的线程 id 是 16 进制)线程的调用情况。可见该进程下 pid 为 4435 的线程 CPU 占用率最高将其换算为 16 进制。查看 pid 为 4432 进程的线程 CPU 占用情况。查看高负载 Java 进程获取到对应 pid。定位到具体的线程调用情况。

2023-12-25 09:48:49 480 1

原创 为什么 String#equals 方法在做比较时没有使用 hashCode

我之前出于优化常数项时间的考虑,想当然的认为会事先使用 hashCode 进行过滤我想像中的算法是这样的minnm也就是以下的代码但事实上确是也就是我先前的设计思路有问题,但不妨参考一下也就是说之前构思出来的算法应该是没有问题的,于是就有了一个疑问:为什么不使用 hashCode 进行第一次过滤?

2023-05-26 22:35:04 882 1

原创 复盘:记录一次 mongo 集群“数据丢失”

本机模拟一主一从一仲裁的 mongo 集群MongoDB 版本:mongodb-community 6.0.4主从仲裁。

2023-04-09 14:37:58 981 1

原创 MySQL 查询优化器的局限性

MySQL 查询优化器的局限性

2023-02-05 00:06:10 403

原创 分布式下的 ID 实现

分布式下的 ID 实现

2022-08-14 15:03:40 331

原创 边界对齐:从 C 到 Java

从 C 的边界对齐开始,看到 Java 的边界对齐

2022-07-10 16:39:28 364

原创 动态规划:(二)背包问题 —— 2. 完全背包模型

最大值/最小值完全背包问题分析状态表示v(i)v(i)v(i):第 iii 个物体体积w(i)w(i)w(i):第 iii 个物体价值f(i,j)f(i,j)f(i,j):在前 iii 个物品中选,体积不超过 jjj 的最大价值状态转移:只要背包能放得下,可以选 kkk 个第 iii 个物品。既满足 j≥kv(i)j \ge k v(i)j≥kv(i),可从 f(i−1,j−kv(i))f(i - 1, j - kv(i))f(i−1,j−kv(i)) 转移。k≥0k \ge 0k≥0

2022-05-19 00:01:54 175

原创 Kafka 集群搭建(含 ZK 模式和 Kraft 模式)

前言环境介绍虚拟机软件:VirtualBoxLinux 发行版本:Ubuntu 20.04.4虚拟机核心数:1 core虚拟机内存:2 GBJDK 版本:1.8.0_202ZK 版本:3.8.0Kafka 版本:3.2.0实验机搭建集群规划node01node02node03zkzkzkkafkakafkakafkaZK 集群部署ZK 环境变量$ vim /etc/profile# 拷贝以下内容export ZK_HOME=/opt

2022-05-18 22:16:35 2226

原创 动态规划:(二)背包问题 —— 1. 01 背包模型

01 背包问题分析状态表示:v(i)v(i)v(i):第 iii 个物体体积w(i)w(i)w(i):第 iii 个物体价值f(i,j)f(i,j)f(i,j):在前 iii 个物品中选,体积不超过 jjj 的最大价值状态转移:可从不选前一个物品转移。即可从 f(i−1,j)f(i - 1, j)f(i−1,j) 转移前一个物体体积不超过背包总容量时,可 从选前一个物体转移。即当 j≥v(i)j \ge v(i)j≥v(i) 时,可从 f(i−1,j−v(i))f(i - 1, j -

2022-05-07 15:10:22 584

原创 基于 Hadoop HA 的 Hive 搭建

前言环境介绍虚拟机软件:VirtualBoxLinux 发行版本:Ubuntu 20.04.4虚拟机核心数:1 core虚拟机内存:2 GBJDK 版本:1.8.0_202Hadoop 版本:3.2.3ZK 版本:3.8.0Hive 版本:3.1.3MySQL 版本:8.0.28Hadoop HA 搭建集群规划Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL按照以

2022-05-03 22:07:57 3451

原创 Hadoop HA 搭建

前言环境介绍虚拟机软件:VirtualBoxLinux 发行版本:Ubuntu 20.04.4虚拟机核心数:1 core虚拟机内存:2 GBJDK 版本:1.8.0_202Hadoop 版本:3.2.3ZK 版本:3.8.0实验机搭建HA 概述HA 即高可用,在 Hadoop 中,只有 NN 和 MR 会出现单点故障。所以只需要对 NN 和 MR 做 HA。DN 和 NM 本身就会起多个,所以不存在单点2NN 用以整合 Image 和 Edit,做 HA 后,处于 stand

2022-05-03 13:02:28 3093 2

原创 配置实验用的 Linux 虚拟机

准备虚拟机软件:VirtualBoxLinux 发行版本:Ubuntu 20.04.4初始化 root 密码$ sudo passwd连不上 VirtualBox 虚拟机网络模式设置两个网卡,分别为 NAT 和 Host-OnlyNAT 用于连外网,Host-Only 用于连内网[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKSZxYvk-1651121464338)(https://raw.githubusercontent.com/a981008/i

2022-05-01 19:34:59 930

原创 搜索:(一)DFS

递归实现指数型枚举import java.util.*;public class Main { public static void dfs(int u, int n, boolean[] st) { if (u > n) { for (int i = 1; i <= n; i++) { if (st[i]) { System.out.print(i + " ");

2022-05-01 19:04:40 248

原创 动态规划:(一)线性 DP —— 3. 状态机模型

状态机模型leetcode 打家劫舍系列和买卖股票系列例题:打家劫舍、打家劫舍 II、买卖股票的最佳时机含手续费、最佳买卖股票时机含冷冻期、买卖股票的最佳时机 IV

2022-04-30 21:08:49 345

原创 刷透二分:(二)猜数检验

题型还在整理,整理完毕后再更新 😃前言模版还是while (l < r) { int mid = l + r >> 1; if (check(mid)) l = mid + 1; else r = mid; }while (l < r) { int mid = l + r + 1 >> 1; if (check(mid)) l = mid; else r = mid - 1;}while (l &lt.

2022-04-23 11:37:13 741

原创 动态规划:(一)线性 DP —— 2. 最长上升子序列模型

最长上升子序列分析状态表示:q(i) 表示序列中第 i 个元素的取值f(i) 表示以第 i 个元素结尾的所有上升子序列中的长度最大值状态转移只有当当前元素大于之前的元素才能转移:q(i) > q(j) 其中 j < i满足条件时,可以从之前的所有情况转移:q(0) ... q(i - 1)状态计算:最大值 max代码import java.util.*;public class Main { public static int dp(int[] q) {

2022-04-18 15:07:26 556

原创 动态规划:(一)线性 DP —— 1. 数字三角形模型

线性 DP —— 数字三角形模型例题有:数字三角形、摘花生、最低通行费、方格取数、传纸条

2022-04-17 17:00:08 535

原创 刷透二分:(一)二分模版应用

前言二分无需数组有序,只需要找一个性质(二段性),能一次刷掉一半的数,就能使用二分。本文展示二分模版应用,很多题的最优解并不是二分,甚至有二分解比最优解还要难想的情况。但是为了加强对二分使用,都强制使用了二分(为了二分而二分)。int l = 0, r = n - 1;while (l < r) { int mid = l + r >> 1; // 当下面出现 mid - 1 时,这里的 mid = l + r + 1 >> 1 if (check(mi

2022-04-17 10:49:37 1129

原创 Spring Boot 自动装配

Spring Boot 自动装配理论基础从启动类上的 @SpringBootApplication 开始。@EnableAutoConfiguration -> @Import(AutoConfigurationImportSelector.class)。查看 AutoConfigurationImportSelector#AutoConfigurationEntry// 导入配置类protected AutoConfigurationEntry getAutoConfigurationE

2022-02-21 00:56:50 735

原创 C 结构体中的 “:” 用法和对齐规则

“:” 用法以下摘自 redis 的 serve.h#define LRU_BITS 24typedef struct redisObject { unsigned type:4; unsigned encoding:4; unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or * LFU data (least significant 8

2022-02-06 05:01:33 1542 1

原创 OS 进程三/五态模型、CSAPP 进程三态模型和 JAVA 线程模型

OS 进程三态模型模型出处:《计算机操作系统》 和 现代操作系统状态表示就绪(Ready)状态:进程已准备好运行,只要分配时间片,就能得到执行。也就是除了时间片外,已经准备好一切资源。执行(Running)状态:进程已获得时间片,程序当前正在运行。阻塞(Block)状态:正在执行的进程因为某些资源得不到满足,继而无法继续运行的状态。状态转移就绪 -> 执行:就绪状态的进程获得时间片执行 -> 就绪:执行状态的进程时间片耗尽执行 -> 阻塞:执行状态的进程发生的

2022-01-30 23:08:40 1090

原创 MySQL 中的锁

MySQL 中的锁按照类型分:读锁(S)、写锁(X)按照粒度分:表锁、页锁、行锁、全局锁行锁由存储引擎(如:InnoDB)实现。读写锁排斥情况SXS兼容排斥X排斥排斥表锁表级 S 锁、X 锁加表级读写锁方式:LOCK TABLES t READ:对表 t 加表级别的 S 锁。LOCK TABLES t WRITE:对表 t 加表级别的 X 锁。锁类型自己可读自己可写自己可操作其他表他人可读他人可写读锁是否

2022-01-18 22:37:30 1933

原创 最短单词距离系列(243 244 245)

243. 最短单词距离给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离。示例:假设 words = ["practice", "makes", "perfect", "coding", "makes"]输入: word1 = “coding”, word2 = “practice”输出: 3输入: word1 = "makes", word2 = "coding"输出: 1注意:你可以假设 word1 不等于 word2, 并且 word1 和

2022-01-10 10:26:35 302

原创 266. 回文排列

266. 回文排列给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。示例 1:输入: "code"输出: false示例 2:输入: "aab"输出: true示例 3:输入: "carerac"输出: true解法:遍历重新排列后能组成回文串,必然满足一下两点之一对于偶数串而言,每个字符都重复,且都是偶数倍如:abba对于奇数串而言,除中间连着的相同字符是奇数个外,其他字符都重复,且都是偶数倍如:abbba 或 aba思想复杂

2022-01-10 08:31:45 830

原创 246. 中心对称数

246. 中心对称数中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。请写一个函数来判断该数字是否是中心对称数,其输入将会以一个字符串的形式来表达数字。示例 1:输入: num = "69"输出: true示例 2:输入: num = "88"输出: true示例 3:输入: num = "962"输出: false示例 4:输入:num = "1"输出:true解法:模拟思想0 <-> 01 <->

2022-01-09 20:02:31 797

原创 163. 缺失的区间

163. 缺失的区间给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。示例:输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,输出: ["2", "4->49", "51->74", "76->99"]解法:模拟思想没什么好说,按照题意就行复杂度时间复杂度:O(N)O(N)O(N)空间复杂度:O(1)O(1)O(1)代码class

2022-01-09 19:42:24 234

原创 构造并注册 BeanDefinition

BeanDefinition 属性属性说明Class全类名,必须是能实例化的具体类Name名称或 IDScope作用域(singleton、prototype)Constructor arguments构造器参数,用于构造器注入Properties属性,用于 setter 注入Autowiring mode自动装配模式(byName、byType、constructor)Lazy initialization mode延迟初始化模式(延

2022-01-09 13:56:42 354

原创 1182. 与目标颜色间的最短距离

1182. 与目标颜色间的最短距离给你一个数组 colors,里面有 1、2、 3 三种颜色。我们需要在 colors 上进行一些查询操作 queries,其中每个待查项都由两个整数 i 和 c 组成。现在请你帮忙设计一个算法,查找从索引 i 到具有目标颜色 c 的元素之间的最短距离。如果不存在解决方案,请返回 -1。示例 1:输入:colors = [1,1,2,1,3,2,2,3,3], queries = [[1,3],[2,2],[6,1]]输出:[3,0,3]解释: 距离索引 1

2022-01-09 04:20:42 201

原创 1055. 形成字符串的最短路径

1055. 形成字符串的最短路径对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的子序列。给定源字符串 source 和目标字符串 target,找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回 -1。示例 1:输入:source = "abc", target = "abcbc"输出:2解释:目标字符串 "abcbc" 可以由 "abc" 和 "bc" 形成,它们都是源字符串 "abc" 的子序列。

2022-01-09 04:00:14 423

原创 562. 矩阵中最长的连续1线段

562. 矩阵中最长的连续1线段给定一个01矩阵 mat,找到矩阵中最长的连续1线段。这条线段可以是水平的、垂直的、对角线的或者反对角线的。示例:输入:[[0,1,1,0], [0,1,1,0], [0,0,0,1]]输出: 3提示: 给定矩阵中的元素数量不会超过 10,000。解法一:标准 DP思想状态表示f(0,i,j)f(0,i,j)f(0,i,j) 表示以 (i,j)(i,j)(i,j) 点为结尾的 水平 连续 1 线段的长度f(1,i,j)f(1,i,j)f(1,i,

2022-01-08 09:14:02 882

原创 1230. 抛掷硬币

1230. 抛掷硬币有一些不规则的硬币。在这些硬币中,prob[i] 表示第 i 枚硬币正面朝上的概率。请对每一枚硬币抛掷 一次,然后返回正面朝上的硬币数等于 target 的概率。示例 1:输入:prob = [0.4], target = 1输出:0.40000示例 2:输入:prob = [0.5,0.5,0.5,0.5,0.5], target = 0输出:0.03125解法一:经典 DP思想状态表示,f(i,j)f(i, j)f(i,j) 表示从第 111 个硬币到第 i

2022-01-07 19:06:35 487

原创 1746. 经过一次操作后的最大子数组和

1746. 经过一次操作后的最大子数组和你有一个整数数组 nums。你只能将一个元素 nums[i] 替换为 nums[i] * nums[i]。返回替换后的最大子数组和。示例 1:输入:nums = [2,-1,-4,-3]输出:17解释:你可以把-4替换为16(-4*(-4)),使nums = [2,-1,16,-3]. 现在,最大子数组和为 2 + -1 + 16 = 17.示例 2:输入:nums = [1,-1,1,1,-1,-1,1]输出:4解释:你可以把第一个-1替换为1

2022-01-07 17:32:57 1113

原创 487. 最大连续1的个数 II

487. 最大连续1的个数 II给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数。示例 1:输入:[1,0,1,1,0]输出:4解释:翻转第一个 0 可以得到最长的连续 1。 当翻转以后,最大连续 1 的个数为 4。注:输入数组只包含 0 和 1.输入数组的长度为正整数,且不超过 10,000解法一:经典 DP思路状态表示,操作 即由 000 变 111f(i,0)f(i, 0)f(i,0) 表示包含第 iii 个位置,没有使用

2022-01-07 16:03:14 768

原创 265. 粉刷房子 II

265. 粉刷房子 II假如有一排房子,共 n 个,每个房子可以被粉刷成 m 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n*m 的矩阵来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成 0 号颜色的成本花费;costs[1][2] 表示第 1 号房子粉刷成 2 号颜色的成本花费,以此类推。请你计算出粉刷完所有房子最少的花费成本。注意:

2022-01-07 13:42:28 493

原创 1259. 不相交的握手

1259. 不相交的握手难度困难21收藏分享切换为英文接收动态反馈偶数 个人站成一个圆,总人数为 n 。每个人与除自己外的一个人握手,所以总共会有 n / 2 次握手。将握手的人之间连线,请你返回连线不会相交的握手方案数。由于结果可能会很大,请你返回答案 模 10^9+7 后的结果示例输入:n = 6输出:5解法:DP思想状态表示:f(n)f(n)f(n) 表示 nnn 个人时的握手方案数当十个人时,如图所示,按照最后一个人的握手方式划分整个集合,将会划分成f(0)f(0)f

2022-01-07 09:44:42 293

原创 leetcode 并查集模版题

并查集模版附在文末。以下代码,省略模版,跑 leetcode 时记得补上。323. 无向图中连通分量的数目思想连通分量的数量就是并查集内的集合数量复杂度时间复杂度:O(N)O(N)O(N)空间复杂度:O(N)O(N)O(N)代码class Solution { public int countComponents(int n, int[][] edges) { UnionFind find = new UnionFind(n); for (int.

2022-01-06 06:57:28 150

转载 Java 并查集代码

public class UnionFind<V> { private class Node<V> { V value; public Node(V v) { value = v; } } // 元素与节点对应关系 private HashMap<V, Node<V>> nodes; // 节点与父节点对应关系 private H

2022-01-06 03:38:56 203

原创 276. 栅栏涂色

276. 栅栏涂色有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,请你按下述规则为栅栏设计涂色方案:每个栅栏柱可以用其中 一种 颜色进行上色。相邻的栅栏柱 最多连续两个 颜色相同。给你两个整数 k 和 n ,返回所有有效的涂色 方案数 。输入:n = 3, k = 2输出:6解释:所有的可能涂色方案如上图所示。注意,全涂红或者全涂绿的方案属于无效方案,因为相邻的栅栏柱 最多连续两个 颜色相同。解法一:标准 DP思想状态表示f[i][0] 表示第 i 个与第 i -

2022-01-05 04:27:19 1736

原创 256. 粉刷房子

256. 粉刷房子假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。示例 1:输入: costs =

2022-01-05 02:36:21 327

深入理解计算机系统 CSAPP 思维导图 哈工大 854

本人对 CSAPP 做的导图 参考资料主要来源于 CSAPP 和 哈工大 PPT

2022-01-24

阅读蒙猜大全.xmind

阅读蒙猜大全.xmind

2021-12-23

空空如也

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

TA关注的人

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