自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 [Leetcode] 0-1背包和完全背包

dp[j]:容量为j的背包尽可能装满的最大容量。dp[j]:容量为j的背包能有多少种方法装满。dp[j]:容量为j的背包所能装的最大容量。dp[j]:容量为j的背包所能装的最大容量。dp[j]:容量为j的背包 所能装满的方法。纯01背包(非应用):只能选择一次物品。

2024-06-03 15:14:51 177

原创 IDC Stability Environment

IDC Team负责数据中心内IT基础架构和服务的管理(可靠地运行),包括服务器(数据处理能力);存储系统(保存数据);网络设备(传输数据)准备内容:数据中心架构、服务器硬件和操作系统、网络协议和设备、虚拟化技术、备份和恢复策略监控工具和软件、IT服务管理。

2024-04-09 18:03:46 699

原创 [MySQL] 慢查询

如果查询到慢查询,如何做优化。

2024-04-08 13:46:32 294

原创 [Raft共识算法的分布式数据库]

1. Leader Append Entries:领导者追加日志条目,处理客户端请求,打包成日志,向follower同步。,它的设计目标之一就是提供更好的可读性和可理解性,相比之下,Paxos算法相对更加抽象和复杂。问题,即集群中的节点因为网络故障而互相失去联系,导致集群被分割成。其他节点检查自己任期,如果选举者任期大于自己,则投票,并更新。,而Paxos中角色的切换较为复杂,需要进行更多的投票和协调。在系统启动的时候或当前领导者失效的时候,节点发起选举过程。没有大多数节点的确认,当前的领导者将。

2024-04-07 18:10:42 888

原创 [Data Center] 安全监控(IDS/IPS/SIEM)、性能优化(网络配置/硬件升级)

入侵检测系统(IDS)、入侵防御系统(IPS)和安全信息和事件管理(SIEM)Zabbix、Nagios和Prometheus都是常用于监控数据中心的工具。监控工具(如资源监控软件、网络分析工具等),分析并确定性能瓶颈所在。操作如果成为限制因素,升级存储设备(从HDD升级到SSD),提高。率升高,重新评估和调整路由策略,或者优化交换机和路由器的配置。定期更新攻击特征库,使IDS能识别新出现的威胁。进行事件关联分析,发现异常模式和潜在威胁;其他部分(流量分布不均),调整。安全信息和事件管理(应用。

2024-04-07 14:02:53 236

原创 [计算机网络] I/O多路复用(Epoll)

监听的socket(客户端进行连接) 和已连接的socket(与客户端进行交互)父进程关心监听socket,子进程关心已连接socket。select需要通过遍历文件描述符,以及并发数增加以后,性能损耗指数增加。只会在文件描述符发生状态变化的时候通知一次,不会再次通知。边缘触发ET:当被监控的 Socket 描述符上有可读事件发生时,一台机器是可以有多个网卡的,每个网卡都有对应的 IP 地址。水平触发LT:被监控的 Socket 上有可读事件发生时,的效果,一个服务器对多个客户端,进行I/O复用。

2024-04-06 17:01:14 282

原创 [计算机系统] 软中断、进程、线程、通信

操作系统收到中断请求后会打断其他进程运行,响应程序要尽快执行,避免影响正常调度。同一个进程内多个线程之间可以共享代码段、数据段、打开的文件等资源。为避免中断处理程序执行时间过长和中断丢失,将中断分为两个部分。下半部分用来延迟处理上半部分未完成的工作(内核线程运行)触发,负责上半部分未完成的工作,软中断处理程序异步处理。上半部分用来快速处理中断(关闭中断请求)就绪:可运行,由于其他进程正在运行而暂停。阻塞:该进程正在等待事件发生,暂停运行。运行:当前进程占用CPU。有名管道 mkfifo。

2024-04-06 15:52:09 278

原创 [计算机网络] 当输入网址到网页

本地DNS进行缓存查询,查询到即返回ip地址;查询不到,则本地DNS向根DNS服务器请求。本地DNS向顶级域DNS服务器发送请求,顶级域DNS会发送对应的权威域DNS地址。之后把HTTP响应请求进行包装(TCP, IP, MAC, 网卡)根DNS服务器会根据域名给本地DNS发送对应的顶级域DNS服务器地址。窗口大小:流量控制(对发送方);客户端发送DNS请求(关于这个域名),发给本地DNS服务器。权威域DNS会查询对应的ip地址返回本地DNS服务器。发送方的MAC地址 和 接收方的MAC地址 用于。

2024-04-05 18:09:38 994

原创 [计算机知识] 各种小问题思考

粘包:TCP为了保证效率,将发送端的数据粘合在一起,作为一个整体发送,接收端需要进行拆分;2. 链地址法:哈希表的每个槽位是一个链表,新元素与现有元素发生冲突,可以存储在同一个槽位的链表中。kill是软终止信号,告诉进程尽快停止运行,允许进程进行清理动作。kill -9是硬终止信号,立刻停止运行,不做清理和恢复资源机会。哈希算法:将任何长度的输入通过散列函数转换成固定长度的字符串。kill是发送TERM信号,kill -9是发送KILL信号。:在消息的头部加上数据长度的字段,根据长度来读取数据。

2024-04-04 16:55:09 824

原创 [计算机知识] TCP/IP网络模型、MySQL的结构

应用层的数据可能会太大,就需要进行拆分,由于数据大小不能超过MSS。IP协议,涉及到网络号和主机号,通常是通过子网掩码进行与运算得到。路由是进行寻址的,找到目标地址的子网(这以后才会进行主机号判断)提供链路级别的传输服务,在以太网、wifi底层网络进行数据包发送。连接、查询缓存、解析器、预处理器、优化器、执行器。与客户端进行连接,连接过程也需要三次握手进行,基于TCP连接。涉及到储存引擎的选择,存储引擎的物理结构。此层设计 端口,端口对应应用标记,识别是哪个应用的。TCP提供稳定、面向连接的网络传输协议。

2024-04-04 14:15:41 457

原创 [Linux] 排查问题指令top/ps/netstat

可以看到pid为720这个进程对应的执行命令为 /lib/systemd/systemd-resolved。所以得出:53端口号所执行的命令为/lib/systemd/systemd-resolved。简单介绍,top是看cpu和内存使用情况,ps看当前进程,netstat看端口监听情况。结束进程的指令 kill -SIGTERM <PID> (进程间通信之一 信号)查看进程的运行情况,和进程的PID,运行时间和占用的虚拟内存。内存,cpu使用率高的进程,用来监控系统资源和排查资源瓶颈。

2024-04-02 22:50:09 349

原创 DAY 16 | 654, 617, 700, 98

对每个节点的最大值和最小值记录,包括是否为搜索二叉树。对每个节点进行判断应该取什么节点。在区间内找节点,进行左右遍历。找最大节点的index。

2024-01-17 17:07:13 344

原创 DAY 14 | 513, 112

队列,每次在最开头的时候进行记录。判断左右是否有满足的。

2024-01-16 12:40:53 364

原创 DAY 13 | 110, (257, 404)

到叶子节点的时候,无法判断自身是否为左孩子,需要通过父来判断。重点:当前节点本身无法判断是否为左叶子,需要父节点。收集 左子树的 左叶子和 + 右子树的 左叶子和。对当前节点进行插入,如果为叶子节点则插入。左叶子:左右都没节点;后序遍历:左右中(当前节点)对每个节点计算高度和平衡性。

2024-01-15 12:46:55 381

原创 DAY 11 | 226, 101, 104, 111

左右节点交换,并且临时保存,确保当前操作节点不为nullptr。按层遍历,逐一比较,再进入下一层进行比较。需要注意的是,叶节点是 两边都没节点才是。对当前层进行处理,再遍历下一层。按层遍历,处理当前节点。

2024-01-12 14:41:02 367

原创 DAY 11 | 144, 94, (347)

用小根堆的方法,进行降序排列。前序遍历:根节点在最先。中序遍历:根节点在中间。

2024-01-11 10:55:36 398

原创 DAY 10 | 1047, (20,150)

遇到加减乘除的时候,进行取堆进行计算。遇到左括号就插入相应的右括号。

2024-01-10 18:56:30 303

原创 DAY 8 | 232, 225

通过一个入栈stack和一个出栈stack。并且通过倒来倒去的方式进行。也是倒来倒去的方式来解决。

2024-01-09 15:00:51 317

原创 DAY 7 | (541, 151), 344, 05, 58

删除空格,用快慢指针,慢指针指向所需要的,并且当慢指针不在开头的位置,需要加入一个空格,在每次while遍历插入快指针的时候。反转的时候,需要加入起始点,连续点,遍历点;reverse函数:反转 [ start, end)前反转前半段,再反转后半段,再全部反转。通过数组的大小,进行前后交换。

2024-01-09 11:03:49 362

原创 DAY6 | (454, 15, 18), 383

固定第一个数,用双指针left和right进行逐一判断是否满足。用map,两个数先相加,再找另外两个数。用map来记录字符和出现的次数。固定两个数,用for固定。然后再用双指针进行判断。

2024-01-06 15:26:56 351

原创 DAY5 | 242, 349, 202, (1)

用set记录出现的int,从而判断哪些重复交集。把需要获取的数作为 key,可以用find查找。用map,记录字符以及出现的次数。用set记录,以防有些数是循环。

2024-01-04 16:34:55 346

原创 DAY4 | (24), 19, 02.07, 142

如果需要对next及next->next节点进行操作,需要控制cur。相遇以后,快指针回归head,同步走一个,相遇即交点。用哈希表,inset,find进行查找重复。快慢指针,快指针走两个,慢指针走一个。记录next节点,以防丢失控制。快慢指针,让快指针先走n个节点。同样需要虚拟头结点,以防头删除。所以需要虚拟节点对其进行控制。

2024-01-03 15:15:20 337

原创 DAY 3 | 203, (206, 707)

在删除和插入的时候,需要标记前一个位置index节点,index!需要一个next节点来记录下一个节点;pre节点来记录上一个节点。在查找的时候,需要标记index这个位置,index=0的时候。需要先创建一个新头节点;需要对删除的节点进行delete操作。通过当前节点的next指针指向上一个节点来实现逆序。快慢指针,慢指针来指向满足的节点。

2024-01-02 17:12:35 417

原创 DAY2 | 977, (209, 59)

注意:慢指针缩进应为循环while,直到不满足,进行下一位(快指针)判断。左右指针,比较大小;当快指针满足要求的时候,慢指针进行缩进。记录每轮的起始xy,添加规律需要相同。

2024-01-01 20:44:32 360

原创 DAY1 | 704, 35, (34, 27)

二分法,找第一个大于target的index,和第一个大于等于target的index。注意区间开闭合,采用统一,[left, right] 左右端点都查找确定。left是大于target的边界;right最后被移动。每次都是mid位置 大于 target进行记录。二分查找,左右两个指针,比对中间值与左右大小。快指针去遍历数组,慢指针指向新数组的下标。插入的位置,left位置可以允许插入;二分查找,如果找不到,需要插入。

2023-12-28 16:25:18 373 1

原创 [Leetcode] 123. 买卖股票的最佳时机、 III188. 买卖股票的最佳时机 IV

dp[i][1]:第一次持有(可能延续之前)dp[i][2]:第一次不持有。dp[i][4]:第二次不持有。dp[i][3]:第二次持有。dp[i][0]:不操作。

2023-08-19 15:48:52 265

原创 [Leetcode] 打家劫舍:198. 打家劫舍、213. 打家劫舍II、337. 打家劫舍 III、121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

买入的时候,持有的现金金额是根据之前不持有股票的最大金额。dp[i][1]:第i天不持有股票的最大金额。dp[i][0]:第i天持有股票的最大金额。不持有股票:当天卖出(之前持有);持有股票:当天买入;

2023-08-18 17:23:46 54

原创 [Leetcode] 139. 单词拆分、198.打家劫舍、213.打家劫舍II、337.打家劫舍III

如果此节点没偷,子节点可偷可不偷 max(left[0], left[1]) + max(right[0], right[1])dp数组(dp table)以及下标的含义:下标为0记录不偷该节点所得到的的最大金钱,下标为1记录偷该节点所得到的的最大金钱。如果此节点偷了,子节点不能偷 cur->val + left[0] + left[1]dp[1] = max(nums[0], nums[1]);dp:0为不偷该节点的最大金额;初始化:dp[0] = nums[0];递推:偷第i间,就不能偷第i-1。

2023-07-21 14:53:33 88

原创 [Leetcode] 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数

最少个数:min(dp[j], dp[j-coins[i]]+1)dp:背包大小为 i 的时候,可以装的方法为dp[i]递归:dp[i] += dp[i-nums[i]]dp:和为 i 的背包,装满的最少物品数量。dp:爬到 i 层的方法为 dp[i]排列问题:先背包后物品。

2023-07-19 15:16:21 277

原创 [Leetcode] 518. 零钱兑换 II 、377. 组合总和 Ⅳ

完全背包:每个物品使用无数次。采用正序遍历(背包重量)

2023-07-17 10:44:43 354

原创 [Leetcode] 416. 分割等和子集、1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

递推公式:dp[j] = max(dp[j], dp[j-weight[i]]+value[i])递推公式:dp[j] = max(dp[j], dp[j-weight[i]]+value[i])背包两个维度:dp[i][j] - i个0,j个1,最多装dp[i][j] 个物品。dp[target] == target 属于装满。dp[j] : 容量为j,最大价值为dp[j]一和零 - 装满背包有多少个物品。dp[j]:装满背包容量为j,有。目标和 - 有多少种方法装。初始化:dp[0] = 0。

2023-07-16 22:03:01 301

原创 代码随想录算法训练营第四十四天 | 复习

【代码】代码随想录算法训练营第四十四天 |

2023-06-29 16:39:38 137

原创 代码随想录算法训练营第四十三天 | 1049. 最后一块石头的重量 II 、494. 目标和

递归:nums[i] - 本次要加的数量,必须保证之前所能装的数量还有 j-i个。想法:left - 加法集合、right - 减法集合。拆分正数集合和复数集合,凑出对应的值left。dp[j-nums[i]] + 本次的。

2023-06-23 18:23:00 102

原创 代码随想录算法训练营第四十一天 | 背包问题(一维、二维)、416. 分割等和子集

dp[i-1][j-weight[i] - 不放物品i的时候(容量腾出i),所放的最大价值。递推公式:dp[j] = max(dp[j], dp[j-weight[i]]+value[i])dp[i-1][j-weight[i]] + value[i] - 左上方。放物品i:dp[i-1][j-weight[i]] + value[i]value[i] - 把i物品放进去,最终最大价值。dp[j] :容量为j的背包,所背最大价值为dp[j]dp[i-1][j] - 上方。不放物品i:dp[i-1][j]

2023-06-23 11:44:09 137

原创 代码随想录算法训练营第四十天 | 343. 整数拆分、96.不同的二叉搜索树

想法:左树节点的个数从0~i-1,右数节点数量从i-1~0。

2023-06-19 16:17:42 56

原创 代码随想录算法训练营第三十九天 | 62.不同路径、63. 不同路径 II

dp[i][j] 到达i, j位置的路径数。需要多考虑障碍物的情况。

2023-06-19 12:10:47 669

原创 代码随想录算法训练营第三十八天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

dp[i-1]和dp[i-2]都是上到i楼梯的选择,需要加上该层楼梯的花费,最小值。只能从n-1或者n-2爬上来,dp[n] = dp[n-1] + dp[n-2]想法:dp是每层楼梯的方法。dp是每层楼梯的最小花费。

2023-06-19 11:30:03 76

原创 代码随想录算法训练营第三十六天 | 435. 无重叠区间、 763.划分字母区间

想法:如果积累了几个气球都没射箭的话,需要记录最小右边界,可射到的范围。想法:右边界(最小,前面多个段区间)和左边界进行比较。统计每个字符出现的最远位置。

2023-06-14 23:22:44 32

原创 代码随想录算法训练营第三十五天 | 860.柠檬水找零 、406.根据身高重建队列

想法:先按身高进行排序,排完以后,可以放心按照k来插入。想法:判断三种情况,20块钱的时候优先10块钱。

2023-06-13 23:53:20 36

原创 代码随想录算法训练营第三十三天 | 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

想法:剩余量进行计算,一旦剩余量

2023-06-13 11:05:04 26

空空如也

空空如也

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

TA关注的人

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