logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【数据结构与算法】跳表实现详解

​skiplist是一种随机化的数据结构基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)大多数情况下,因为是实现上是概率问题),因为其性能匹敌红黑树且实现较为简单,因此在很多著名项目都用 skiplist来代替红黑树,例如LevelDBRocksDBRedis中的有序集合zset的底层存储结构就是用的 skiplist。​目前常用的 key-value数据结构有三种:哈希表、红

文章图片
#c++#算法
【SpringCloud】Nacos简介 && 安装 && 快速入手 && 负载均衡

Nacos是一款由阿里开源的动态服务发现与配置管理平台,支持多语言开发,已成为国内开发者首选的服务注册中心。安装过程简单,支持Windows和Linux环境,启动后通过8848端口访问管理界面。在SpringCloud项目中,只需引入Nacos依赖并配置服务地址即可实现服务注册与发现,同时需搭配LoadBalance实现负载均衡。Nacos提供灵活的流量控制功能,包括服务下线、权重配置等,便于生产

文章图片
#spring cloud#负载均衡#spring +1
【数据结构与算法】LRU Cache 算法实现

​LRU) 是一种淘汰策略的缩写,意思是最近最少使用,它是一种 Cache替换算法。​什么是Cache?狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。广义上的Cache指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。除了CPU与主存之间有Cache, 内存与硬盘之间也有Cache,乃至在

文章图片
#算法#c++
【数据结构与算法】最小生成树算法实现:Prim && Kruskal

​连通图中的每一棵生成树,都是原图的一个极大无环子图,即:从其中删去任何一条边,生成树就不再连通;中取出权值最小的一条边 ( 若有多条任取其一 ) ,若该边的两个顶点来自不同的连通分量,则将此边加入到 G。算法也是常用的最小生成树算法。​两种算法其实在效率是差不多的,只不过实现的方式是不一样的,具体问题具体分析!来判断,每次将选择的边对应的邻接顶点加入到并查集中,然后每次新增边的时候。​具体实现的

文章图片
#算法#图论#c++
【C++】设计模式详解:单例模式

不定义是因为该函数根本不会调用,定义了其实也没有什么意义,不写反而还简单,而且如果定义了就做不到防止成员函数内部拷贝了。

文章图片
#c++#设计模式#单例模式
【单调队列】滑动窗口最大值

本文介绍了LeetCode 239题"滑动窗口最大值"的解法,重点分析了使用单调队列的两种实现方式。题目要求在长度为n的数组中,找出所有大小为k的滑动窗口中的最大值。 解法核心在于使用单调队列维护窗口内元素的顺序: 维护数组下标法:队列存储元素下标,保证队头始终是当前窗口最大值。通过判断下标范围确保元素在窗口内,新元素入队时移除破坏单调性的元素。 维护元素值法:队列直接存储元素

文章图片
#c++#算法
【问题记录】maven报错:dependency ‘org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.1.0‘ not found

Maven报错提示找不到依赖'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.1.0'。问题源于将依赖放在dependencyManagement中被误识别为插件。解决方案是:先将该依赖直接放入dependencies标签下载,确认能正常解析后再移回dependencyManagement中管理。这种操作方式可以避免Maven错

文章图片
#maven#mybatis#spring +1
【动态规划:子序列问题】最长递增子序列 && 摆动序列

动态规划解子序列问题总结 本文介绍了两种典型的子序列问题解法: 最长递增子序列: 使用动态规划,定义dp[i]为以i结尾的最长子序列长度 状态转移需遍历i之前所有元素,时间复杂度O(n²) 关键点:子序列不连续,需考虑所有可能组合 摆动序列: 定义up/down数组表示以i结尾且最后趋势上升/下降的最长子序列 可优化为O(n)时间复杂度和O(1)空间复杂度 优化思路:利用趋势特性,只需比较相邻元素

文章图片
#动态规划#算法#c++
【滑动窗口】找到字符串中所有字母异位词

本文讨论了如何在字符串 s 中找到所有与字符串 p 的异位词子串的起始索引。异位词指由相同字母重排列形成的字符串。文章提出了两种解题思路: 哈希表 + 暴力破解:通过哈希表记录 p 的字符频率,并在 s 中滑动窗口,逐个比较字符频率是否匹配。该方法时间复杂度较高,适用于小规模数据。 哈希表 + 滑动窗口优化:在暴力破解的基础上,优化了窗口滑动过程,避免重复计算。通过维护一个固定大小的窗口,减少不必

文章图片
#c++#算法
【栈与队列】二叉树最大宽度

​之所以右孩子节点的下标溢出之后,减去左孩子节点的下标还能得到正确结果,其实就是因为我们之前学过的有符号整型它的取值范围问题,其实是呈现一个环状的,我们只要保证这个右孩子节点的下标溢出之后不要绕着这个取值范围的环状超过一圈即可,因为如果超过了一圈的话,那么直接用右孩子节点的下标减去左孩子节点的下标的话,会漏了超出的圈数的值,不过好在题目保证的答案将会在 32。个节点,此时对于右孩子节点的下标来说是

文章图片
#c++
    共 76 条
  • 1
  • 2
  • 3
  • 8
  • 请选择