自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ STL无需容器自定义哈希函数和比较规则

而当无序容器中存储的是用结构体或类自定义类型的数据时,自定义哈希函数的方式只有一种,即使用函数对象类的形式;而自定义比较规则的方式有两种,要么也以函数对象的方式,要么仍使用默认的std::equal_to<key>规则,但前提是必须重载==运算符。当无序容器中存储的是基本类型(int、double、float、string)数据时,自定义哈希函数和比较规则,都只能以函数对象类的方式实现。

2023-06-05 18:45:49 223

原创 leetcode 剑指53. 二叉搜索树中的中序后继

既然是查找某一节点的中序后继,所以我们使用中序深度优先搜索算法。定义全局变量(find = false;)用于记录是否查找到目标节点,当遍历到了我们想要的节点就将find置为true,并继续遍历下一个节点,该节点即为目标节点的中序后继节点,若后面没有其他节点,则返回空指针;若目标节点不存在,也返回空指针。,找到该节点在树中的中序后继。如果节点没有中序后继,请返回。大的节点中键值最小的节点,即按中序遍历的顺序节点。给定一棵二叉搜索树和其中的一个节点。

2023-06-04 19:16:45 80

原创 leetcode 剑指47 二叉树剪枝

bool dfs(TreeNode* root) 当整个子树的节点都为0就删去,使用了后续遍历。解法:使用深度搜索算法,遍历整个二叉树。

2023-06-03 14:25:26 70

原创 leetcode 84 柱状图中最大的矩形

3.单调栈优化:因为最终的目的是寻找对应柱子height[i]右边首个严格小于height[i]的柱子height[r];维护一个单调递增栈(栈底->栈顶),那么每当遇到新加入的元素<栈顶便可以确定栈顶柱子右边界,而栈顶柱子左边界就是栈顶下面的柱子(<栈顶柱子)。1.核心思想:求每条柱子可以向左右延伸的长度->矩形最大宽度;矩形的高->柱子的高度计算以每根柱子高度为高的矩形面积,维护面积最大值。2.朴素的想法:遍历每一根柱子的高度然后向两边进行扩散找到最大宽度。空间复杂度:O(N),空间复杂度:O(N)

2023-06-02 14:49:54 60

原创 单调栈结构算法(刷题记录)

使用栈从后向前遍历题目所给数组,对遍历到的每个元素进行判断,当前栈若是非空且该元素大于栈顶元素,则弹出栈顶元素,在此重复上一操作;直至栈为空(说明数组中没有比该元素还大的元素)就将该元素的res数组幅值为-1;或遇到大于该元素的栈顶元素,就将栈顶元素赋值到res数组中。503下一个更大元素。

2023-06-02 09:44:20 31

原创 LRU算法(刷题记录)

也就是说LFU算法是淘汰访问频次最低的数据,如果访问频次最低的数据有多条,需要淘汰最久的数据。5.希望能够快速删除key列表中任何一个key,因为如果频次freq的某个key被访问,那么它的频次就会变成freq+1,就应该从freq对应的key列表中删除,接到freq+1对应的key的列表中。3.可能有多个key拥有相同的freq,所以freq对key是一对多的关系,即一个freq对应一个key的列表。4.希望freq对应的key的列表是存在时序的,便于快速查找并删除最旧的key。

2023-05-30 17:07:45 88 1

原创 LRU算法(刷题记录)

LRU的全称是Least Recently Used,也就是说我们认为最近使用过的数据应该是[有用的],很久都没有用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。1.显然cache中的元素必须有时序,以区分最近使用的和久未使用的数据,当容量满了之后要删除最久未使用的那个元素腾出位置。3.每次访问cache中的某个key,需要将这个元素变为最近使用的,也就是说cache要支持在任意位置快速插入和删除元素。LRU缓存算法的核心数据结构就是哈希链表,双向链表和哈希表的结合体。

2023-05-30 14:43:22 52 1

原创 leetcode708-排序的循环链表(刷题记录)

leetcode708-排序的循环链表(刷题记录)

2023-05-29 21:34:54 85 1

原创 leetcode430-扁平化多级双向链表(刷题记录)

leetcode430

2023-05-29 19:47:09 46 1

原创 CMake构建集成编译环境

CMake构建集成编译环境,使用简单方便,可以跨平台,构建项目编译环境,可以通过简单的Cmake生成负责的MakeFile文件

2023-05-28 12:08:17 414

原创 测试&学习开源muduo网络库,现实服务器的ecoh功能

测试&学习开源muduo网络库,现实服务器的ecoh功能

2023-05-28 11:32:49 216

空空如也

空空如也

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

TA关注的人

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