自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(328)
  • 资源 (25)
  • 收藏
  • 关注

原创 leetcode--从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。

2024-07-09 23:43:07 675

原创 leetcode--从前序与中序遍历序列构造二叉树

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。

2024-07-09 23:38:19 545

原创 leetcode--恢复二叉搜索树

给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入:root = [1,3,null,null,2]输出:[3,1,null,null,2]解释:3 不能是 1 的左孩子,因为 3 > 1。交换 1 和 3 使二叉搜索树有效。示例 2:输入:root = [3,1,4,null,null,2]输出:[2,1,4,null,null,3]解释:2 不能在 3 的右子树中,因为 2 < 3。

2024-07-09 23:27:44 519

原创 leetcode--验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4。提示:树中节点数目范围在[1, 104] 内。

2024-07-09 23:19:55 752

原创 leetcode--从先序遍历还原二叉树

我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。示例 1:输入:“1-2–3–4-5–6–7”输出:[1,2,5,3,4,6,7]示例 2:输入:“1-2–3—4-5–6—7”

2024-07-09 23:01:20 278

原创 leetcode--二叉搜索树中第K小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n。

2024-07-09 13:30:51 492

原创 leetcode--二叉树中的最大路径和

我们定义一个递归函数 max_gain(node) 来计算节点的最大贡献值。这个函数计算从当前节点出发,延伸到左右子树所能获得的最大路径和。计算当前节点的最大贡献值如果当前节点为空,返回0。计算左子树的最大贡献值,记为 left_gain。如果 left_gain 是负值,设置为0,因为负值不会增加路径和。计算右子树的最大贡献值,记为 right_gain。如果 right_gain 是负值,设置为0,因为负值不会增加路径和。

2024-07-09 13:22:20 968 1

原创 leetcode--层数最深叶子节点的和

给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和。示例 1:输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15示例 2:输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:19提示:树中节点数目在范围 [1, 104] 之间。

2024-07-09 13:08:45 397

原创 leetcode--二叉搜索子树的最大键值和

给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。二叉搜索树的定义如下:任意节点的左子树中的键值都 小于 此节点的键值。任意节点的右子树中的键值都 大于 此节点的键值。任意节点的左子树和右子树都是二叉搜索树。示例 1:输入:root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6]输出:20解释:键值为 3 的子树是和最大的二叉搜索树。

2024-07-05 13:06:34 760

原创 leetcode--二叉树中的最长交错路径

给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方向:左变右或者右变左。重复第二步和第三步,直到你在树中无法继续移动。交错路径的长度定义为:访问过的节点数目 - 1(单个节点的路径长度为 0 )。请你返回给定树中最长 交错路径 的长度。

2024-07-04 10:50:07 980

原创 redis哨兵模式(Redis Sentinel)

这种机制能够实时监测Redis实例的状态,并在主节点故障时自动将一个从节点提升为新的主节点,以保证服务的连续性和稳定性,这就是哨兵模式。部署多个Redis哨兵节点,一般至少需要3个哨兵节点来确保系统的可靠性和故障转移的可行性。在每个哨兵节点上编辑配置文件 sentinel.conf,配置包括监控的Redis实例信息、监控频率、故障检测的超时时间、故障转移的策略等。可以通过查看哨兵节点的日志文件、使用 redis-cli 连接到哨兵节点获取信息,以及模拟主节点故障来验证哨兵模式的工作是否正常。

2024-06-26 23:17:32 649

原创 mysql的information_schema浅析

information_schema 是 MySQL 中的一个虚拟数据库,它包含了关于 MySQL 服务器的所有元数据。

2024-06-24 23:09:23 796

原创 mysql的主从同步

主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。

2024-06-13 13:06:15 1085

原创 python实现跳跃表

跳跃表(Skip List)是一种基于链表的数据结构,它通过多级索引实现了高效的查找、插入和删除操作。跳跃表是一种非常有效的数据结构,在需要高效查找、插入和删除操作的应用中广泛使用。通过合理的实现和配置,跳跃表可以提供接近于平衡二叉树的性能,同时具备更简单的实现和维护。查找复杂度:跳跃表的查找操作在期望时间内是 O(logn),因为它通过多层索引有效地减少了需要遍历的节点数。插入复杂度:插入操作的期望时间复杂度也是 O(logn),因为随机层次决定了节点插入的位置。

2024-06-13 13:02:40 351

原创 go处理json

在 Go 中,你可以使用内置的 encoding/json 包来处理 JSON 格式数据。该包提供了函数和类型,使你能够将 JSON 数据解析为 Go 对象(反序列化)或将 Go 对象转换为 JSON 数据(序列化)。

2024-04-18 11:54:23 612

原创 redis常见面试题

Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。特点1:丰富的数据类型我们知道很多数据库只能处理一种数据结构:传统SQL数据库处理二维关系数据;MemCached数据库,键和值都是字符串;文档数据库(MongoDB)是由Json/Bson组成的文档。

2024-03-25 13:42:35 1342

原创 redis-大key优化

Redis 中的“大 key”问题指的是单个键(key)所存储的值(value)过大,导致影响 Redis 的性能和稳定性。通常情况下,Redis 的设计初衷是将数据存储在内存中,因此单个键的大小应该受到限制,以保证内存的高效利用和系统的稳定运行。

2024-03-20 12:56:57 823

原创 mysql索引失效

在MySQL中,索引失效指的是查询语句无法有效地使用索引,而必须进行全表扫描。索引失效可能会导致查询性能下降,特别是在处理大量数据时。

2024-03-20 12:46:45 1009

原创 python实现--拓扑排序

拓扑排序是对有向无环图(DAG)进行排序的一种算法,它可以将图中的顶点排成一个线性序列,使得图中的任意一条有向边都从序列中的较早顶点指向较晚顶点。将1号顶点的邻接顶点2号和3号的入度分别减1,得到入度为0的2号和3号顶点,加入队列:[2, 3]将2号顶点的邻接顶点4号的入度减1,得到入度为0的4号顶点,加入队列:[3, 4]将3号顶点的邻接顶点5号的入度减1,得到入度为1的5号顶点,加入队列:[4, 5]将4号顶点的邻接顶点6号的入度减1,得到入度为0的6号顶点,加入队列:[5, 6]

2024-03-20 12:19:25 536

原创 python实现--哈夫曼编码

哈夫曼树(Huffman Tree)和哈夫曼编码(Huffman Coding)是一种用于数据压缩的技术,由David A. Huffman于1952年提出。哈夫曼树是一种特殊的二叉树,用于构建哈夫曼编码。哈夫曼编码是一种变长编码,用于将字符映射到不同长度的比特串,以实现数据的高效压缩。

2024-03-20 12:07:55 920

原创 python实现--二叉搜索树

二叉搜索树(Binary Search Tree,BST)是一种特殊类型的二叉树,它具有以下性质:每个节点最多有两个子节点,分别称为左子节点和右子节点。对于任意节点,其左子树中的所有节点的值都小于该节点的值。对于任意节点,其右子树中的所有节点的值都大于该节点的值。对于任意节点,其左子树和右子树也分别是二叉搜索树。

2024-03-17 15:43:58 1299

原创 python实现协程

线程是轻量级的并发模型,适用于IO密集型任务。在Python中,可以使用 threading 模块创建和管理线程,由于全局解释器锁(GIL)的存在,Python中的线程并不能充分利用多核CPU,适合用于IO密集型任务。在Python中,可以使用 asyncio 模块来实现协程,它提供了事件循环(event loop)来调度协程的执行,适合用于IO密集型任务和高并发的网络应用。总的来说,进程、线程和协程是并发编程中常用的三种技术,它们各自有着不同的特点和适用场景,可以根据具体的需求选择合适的并发模型。

2024-03-14 12:30:33 393

原创 python实现B/B+树

B树和B+树都是一种多路搜索树,用于对大量数据进行排序和查找。它们在数据库系统中被广泛应用,特别是用于构建索引结构。

2024-03-10 13:53:05 1377

原创 python实现--分块查找

分块查找将数据集合分成若干个块,每个块内的数据可以是有序的,而块与块之间的顺序可以是任意的。在进行查找时,首先根据块的索引查找到可能包含目标元素的块,然后在该块内进行顺序查找。查找范围缩小:通过索引表可以快速确定目标元素所在的块,从而将查找范围缩小到一个块内,然后在该块内进行顺序查找,从而减少了查找的时间复杂度。构建索引表:将线性表分成若干个块,并为每个块建立索引表,索引表中的元素记录每个块的起始位置和结束位置。块内顺序查找:根据目标元素的值,确定它所在的块,并在该块内进行顺序查找。

2024-03-10 13:46:33 491

原创 python实现--折半查找

以上代码实现了折半查找算法。通过不断缩小查找范围,折半查找算法可以在时间复杂度为 O(log n) 的情况下找到目标元素,其中 n 为数组的长度。它的基本思想是通过每次将查找范围缩小为原来的一半来逼近目标元素,直到找到目标元素或者确定目标元素不存在。如果目标值小于中间位置的元素,则更新右边界 right = mid - 1,缩小查找范围为左半部分。如果目标值大于中间位置的元素,则更新左边界 left = mid + 1,缩小查找范围为右半部分。如果目标值等于中间位置的元素,则返回中间位置作为查找结果。

2024-03-10 13:44:42 802

原创 python实现--顺序查找

顺序查找(Sequential Search),也称线性查找,是一种简单直观的查找算法。它的基本思想是逐个遍历数据集合中的元素,直到找到目标元素或者遍历完整个数据集合。顺序查找适用于无序数据集合,时间复杂度为O(n),其中n为数据集合中的元素个数。

2024-03-10 13:42:23 593

原创 python实现生成树

若(u,v)是一条具有最小叔值的边,其中u∈U, v∈V- U,则必存在一棵包含边(u,V)的最小生成树,基于该性质的最小生成树算法主要有Prim算法和Kruskal算法,它们都基于贪心算法的策略。最后,打印出构建出的最小生成树的边集合。Kruskal算法:Kruskal算法是一种基于并查集的贪心算法,它首先将所有边按权重从小到大排序,然后依次考虑每条边,如果当前边连接的两个顶点不在同一个连通分量中,则将这条边加入最小生成树中,并将这两个顶点合并到同一个连通分量中,直到最小生成树的边数达到n-1为止。

2024-03-10 13:30:19 907

原创 python实现回溯算法

回溯算法是一种经典的解决组合优化问题、搜索问题以及求解决策问题的算法。它通过不断地尝试各种可能的候选解,并在尝试过程中搜索问题的解空间,直到找到问题的解或者确定问题无解为止。回溯算法常用于解决诸如排列、组合、子集、棋盘类等问题。if 满足结束条件: # 如果已经满足结束条件result.append(path[:]) # 将当前路径添加到结果中returnfor 选择 in 候选集: # 遍历所有候选选择if 当前选择合法: # 如果当前选择是合法的做出选择 # 将当前选择添加到路径中。

2024-03-10 13:23:39 1860

原创 广度优先搜索和深度优先搜索

以邻接矩阵表示时,查找每个顶点的邻接点所需的时间为0(V),故总的时间复杂度为0(V²).以邻接表表示时,查找所有顶点的邻接点所需的时间为O(E),访问顶点所需的时间为0(V)),此时,总的时间复杂度为O(V+|E|)。采用邻接表存储方式时,每个顶点均需搜索一次(或入队一次),故时间复杂度为0(V),在搜索任一顶点的邻接点时,每条边至少访问一次,故时间复杂度为 0(E),算法总的时间复杂度为0(V+E)。注意:图的邻接矩阵表示是唯一的,但对于邻接表来说,若边的输入次序不同,生成的邻接表也不同。

2024-03-09 14:07:59 1444

原创 python实现桶排序

桶排序(Bucket Sort)是一种排序算法,它将待排序的元素分到有限数量的桶(buckets)中,然后分别对每个桶中的元素进行排序,最后按照顺序将所有的桶中的元素依次取出,即可得到有序序列。桶排序的核心思想是根据待排序元素的大小将它们分配到不同的桶中,然后对每个桶中的元素进行排序,最后将所有桶中的元素合并起来得到有序序列。如果待排序数据均匀分布在各个桶中,则桶排序的时间复杂度为 O(n+k),其中 n 表示待排序元素的数量,k 表示桶的数量。遍历待排序数组,将每个元素根据其值的大小分配到对应的桶中。

2024-03-09 13:27:14 593

原创 nginx使用详解--流控

Nginx可以通过实现流量控制(流控)来限制对服务器的访问并保护其免受过载的影响,限流有以下几种:正常限制访问频率(正常流量)突发限制访问频率(突发流量)限制并发连接数黑白名单配置。

2024-03-01 10:11:59 1069

原创 nginx使用详解--动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。对于用户请求的动态文件,如servlet、jsp,则转发给Tomcat,Jboss服务器处理,这就是动静分离。即动态文件与静态文件的分离。

2024-02-29 23:18:37 1312 1

原创 nginx使用详解--缓存

设置nginx服务器在共享内存中为缓存数据建立索引时使用的关键字。

2024-02-29 22:34:56 3497

原创 nginx使用详解--反向代理

正向代理: 一般的访问流程是客户端直接向目标服务器发送请求并获取内容,使用正向代理后,客户端改为向代理服务器发送请求,并指定目标服务器(原始服务器),然后由代理服务器和原始服务器通信,转交请求并获得的内容,再返回给客户端。正向代理隐藏了真实的客户端,为客户端收发请求,使真实客户端对服务器不可见。反向代理: 反向代理(Reverse Proxy)是一种服务器架构模式,它充当服务器和客户端之间的中间层,将客户端的请求转发到多个后端服务器,并将响应返回给客户端。

2024-02-27 20:13:06 1493

原创 DNS详解

DNS(Domain Name System,域名系统)是互联网中的一种分布式命名系统,用于将域名(例如example.com)转换为对应的 IP 地址(例如192.0.2.1)。它充当了互联网上的电话簿,将易记的域名映射到计算机可以理解的 IP 地址。:DNS 的主要功能是进行域名解析。当用户在浏览器中输入一个域名时,操作系统会向本地 DNS 解析器发送查询请求。本地解析器首先检查自己的缓存,如果缓存中没有找到对应的 IP 地址,则会向根域名服务器发送查询请求。

2024-01-22 15:09:53 1022

原创 iptables使用详解

iptables 是 Linux 系统上用于配置 IPv4 数据包过滤规则的工具。它可以用于设置和管理防火墙规则,网络地址转换(NAT),网络地址端口转换(PAT)等。iptables 是 Linux 内核中 Netfilter 框架的一部分。

2024-01-22 15:08:11 289

原创 iproute使用详解

iproute,或称为 iproute2,实际上是一套 Linux 内核网络协议栈工具,提供了一组用于配置网络接口、路由表、策略路由等网络参数的命令行工具。它并不是一个单一的命令,而是由多个独立的工具组成,用于替代传统的网络管理工具(例如 ifconfig、route 等),提供更丰富的功能和更灵活的网络配置。

2024-01-22 15:07:40 1892

原创 traceroute使用浅析

traceroute命令是一种用于确定IP数据包从源到目标所经过的路由路径的网络诊断工具。它通过发送一系列的ICMP(Internet Control Message Protocol)数据包,来探测到目标主机的路由路径,并在终端输出路由路径上每个节点的IP地址和响应时间。

2024-01-15 19:28:14 926

原创 nginx使用详解--负载均衡

参考链接:https://blog.csdn.net/liulanba/article/details/115557512Session 不共享问题是说,假设用户已经登录过,此时发出的请求被分配到了 A 服务器,但 A 服务器突然宕机,用户的请求则会被转发到 B 服务器。但由于 Session 不共享,B 无法直接读取用户的登录信息来继续执行其他操作。实际应用中,我们可以利用 ip_hash,将一部分 IP 下的请求转发到运行新版本服务的服务器,另一部分转发到旧版本服务器上,实现灰度发布。再者,如遇到文件过

2024-01-13 11:01:42 386

原创 Kotlin中的委托

除了使用标准库提供的属性委托,还可以自定义属性委托来满足特定的需求。一个自定义属性委托需要实现 ReadWriteProperty 接口,该接口包含 getValue 和 setValue 方法。" // 输出: Setting value: Hello, Kotlin!println(example.customProperty) // 输出: Getting value: Hello, Kotlin!

2024-01-13 10:59:45 549

Scrapy爬取多级网页内容源代码加实现.txt

多级网页结构爬取99健康网的信息,用了多种网页反爬取,获取疾病信息。

2019-07-18

Scrapy爬取豆瓣图书Top250代码实现.txt

爬取豆瓣网图书TOP250的信息,只有一级网页结构,可以帮助初学时入门。

2019-07-18

OpenCV处理图像分类.txt

使用Opencv进行特征提取,并且对图像中的物体进行标注,具有很高的识别率。

2019-07-18

LSTM处理三分类问题.txt

用LSTM进行三个文本的分类,进行情感分析和文本分类,入门的NLP案例。

2019-07-18

CNN-SVM.txt

用CNN提取图像特征,并用SVM进行图像分类,适合小数量级的图像分类,而且是入门机器学习不错的案例。

2019-07-18

AI处理X光胸片.txt

可以提取X光片的特征,并进行分析处理,为患者更好的认知自己的病情提供了可视化。

2019-07-18

AI处理X光片.txt

用AI进行X光片的特征提取,进行可视化展示,更好的帮助医生,并为患者提供对病情更好的认知。

2019-07-18

AI处理X光骨骼图像.txt

代码工具,AI处理X光片图像,可以用于医疗研究,帮助医生患者更好的发现X光片的特征。

2019-07-18

国际疾病诊断编码ICD11+ICD10

包含ICD10和ICD11编码,国际疾病诊断编码ICD11,可以帮助更好的找到索引,建立数据库。

2019-06-20

种子填充.txt

包含python Opengl种子填充算法的单色填充和双色填充,简单易懂

2019-06-12

微信自动给女朋友发消息.txt

程序员有时候很忙,忘记给女朋友发消息,用这个程序可以帮助你24小时关心女朋友,还可以加入你自定义的语句

2019-06-12

身份证前6位对应城市.txt

该文件包含身份证前六位对应的城市代码,可以帮助需要的开发者输入身份证自动得到城市信息。

2019-06-12

几何变换.txt

含有python Opengl的几何变换,包含平移旋转缩放以及多种变换的复合形式

2019-06-12

python OPENGL画线.txt

含有Python OPengl的多种画线算法,包含DDA 中点算法 圆的逼近算法 中点画圆法

2019-06-12

dlib-19.7.0.txt

安装人脸识别库face_recognition需要的dlib19.7.0库,注意需要在py36环境下支持。

2019-05-22

Python排序算法

包含多种Python的排序算法,可以帮助使用者更好的理解各种排序算法的Python实现!

2019-03-28

Python实现画小猪佩奇

用Python实现的画小猪佩奇,可以动态画出佩奇,可以自行调整相关参数,画出你自己的佩奇!

2019-03-28

100道简单的python练习题

包含100道简单的python练习题,可以给刚入门Python的同学提供联系的用途,附答案,可以自己对照检查!

2019-03-28

Kali使用全部资料

包含Kali的全套学习资料,可以帮助做渗透分析,网络安全的人提供从入门到精通的全部资源!

2019-03-28

黑客攻防从入门到精通

该书籍包含相应工具,适合初学者一步步学习网络安全相关原理,包含网络攻防的知识和工具,让使用者了解攻击原理,懂得防御措施。

2019-03-25

Tensoeflow资料

含有Tensorflow实战,Tensor flow技术讲解,Tensorflow官方文档,可以让机器学习的爱好者从浅入深的学习Tensor flow!

2019-03-23

Scrapy爬虫

Python的Scrapy爬虫,可以在百度图片里面根据关键字爬取图片,可以直接在DOS模式下或者在Python的IDE平台上面运行,爬取图片会自动安装到爬虫所在的文件夹下!

2019-03-23

PhotoShop CS6安装包

PhotoShop CS6安装包,支持32位和64位,安装之后将对应版本的破解补丁复制,替换掉安装目录下的相应文件,即可使用!注意在断网条件下安装。

2019-03-23

机器学习:猫和狗的图片训练图片25000和测试集12500

百度网盘链接:内有用于机器学习,测试猫狗的原始图片,包含训练数据25000,测试数据125000,可以为机器学习练习提供必要的数据集!

2019-03-23

superscan4.0 正版

superscan4.0是一个强大的端口扫描工具,它支持对局域网主机开放端口进行扫描,是黑客进行入侵攻击的第一步,有效,高速的扫描,可以帮助黑客快速入手攻击!

2019-01-08

空空如也

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

TA关注的人

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