刷题笔记
小莫同学Std
这个作者很懒,什么都没留下…
展开
-
【剑指 Offer 41. 数据流中的中位数】+手撕堆排代码解析+类成员变量作引用传参解析
害怕面试官不允许使用库,一怒之下手撕该题代码,实现堆排,手撕make_heap/pop_heap/push_heap函数;另外因为要实现堆排,涉及到了类内成员变量作引用传参的知识点,这个应该面试也会问;下面上代码和问题遇到的问题总结:1. 类内没有实例化模板类,报错C2440,“初始化”: 无法从“initializer list”转换为,必须实例化模板类。 2. 类内成员变量作引用,必须声明 为引用变量,同时采用有参构造的初始化形式进行初始化。否则无法对外部变量进行更改;直接赋值,报错您没有初始化。 结果原创 2022-07-13 20:02:23 · 197 阅读 · 0 评论 -
【priority_queue】【make_heap/push_heap/pop_heap】的用法及参数解析
主要分为两部分 1.priority_queue的作用:实现大顶堆,小顶堆,本文主要就该容器的使用方法和如何定义第三个模板参数进行详解,需要读者对模板、函数指针、函数对象(仿函数)有一定了解。 2. 第二种库函数方法实现大小顶堆:vector、make_heap、push_heap、pop_heap组合使用, · 2.2 priority_queue的使用方法介绍 1.第一种:只定义一个参数,默认形式下,这里是一个关于字符串的大顶堆(按字符串的第一个字符排,最大的在堆顶) 2.第二种:改变第三个模板参数实原创 2022-06-07 21:37:17 · 583 阅读 · 0 评论 -
【剑指offer专项】II 047. 二叉树剪枝
以此题为例,区别递归和迭代的区别递归: 迭代: 2.中序遍历 递归: 迭代: 3.后序遍历 递归: 迭代:原创 2022-06-03 15:42:39 · 85 阅读 · 0 评论 -
【剑指offer专项】48. 序列化与反序列化二叉树
概述 前序遍历可以比较简单的实现。反序列化。但是中序遍历较为复杂。因为第一个节点处于第几层无法知道,除非在中序序列中有信息体现。否咋无法反序列化构建二叉树。这里给出了一种方法使用中序遍历来构建二叉树。 代码及注释如下: 以下面二叉树为例: 二叉树中序遍历 序列化后的字符串为: ((X)2(X))1(((X)4(X))3((X)5(X)))。相当于一个根节点的表示方法为:(左子树信息)根节点值 (右子树信息)。然后层层递归。得到上述字符串,字符串包含了第一个节点所处的二叉树深度的信息。反序列化如果无法理原创 2022-05-28 15:32:23 · 79 阅读 · 0 评论 -
【剑指offer专项】21-25链表刷题(链表的环境搭建问题)
概述 leetcod上用链表刷题时,如果你需要调试的话,在leetcod上很不方便,使用cout来看结果也不是一个好办法,特别是对于递归这种算法,不一步一步的调试很难搞懂。这时候就需要在本地的VS中调试,但是你需要手搭一些环境,比如说链表的创建,环链表的创建,以及链表的显示,有些时候这个东西很繁琐甚至比题目还难。下面给出我的环境搭建代码方便大家参考,这样就直接可以再VS中输入输出了。当然我也问了一些大佬,他们建议还是leetcod上在线做题,实在搞不懂了可以这样本地调试。 C++在VS就leetcod链表题原创 2022-05-08 19:01:59 · 795 阅读 · 0 评论 -
【剑指offer专项】20. 回文子字符串的个数(manacher算法)
manacher算法 原串回文串终点的求法: 原串回文串的长度为 MLC[POS(after)]−1MLC[POS(after)]-1MLC[POS(after)]−1。 原理可参考https://zhuanlan.zhihu.com/p/70532099,但是他的回文半径和这里的描述相差1,整体逻辑是一样的都是正确的,描述方法不一样而已。 然后还有提一个关于leetcode上初始化f(i)f(i)f(i)的理解模型: ...原创 2022-05-05 17:33:05 · 303 阅读 · 0 评论 -
【剑指offer专项】17. 含有所有字符的最短字符串
思路: 对于基串,用vector创建一个英文字母表来记录,一共52个字母,字母x每出现一次cnt[x]-1。 对于参考串,采用滑动窗口,枚举不同首字母的子串。滑动窗口可用分析:“aabbcd”中找“abc” “(aabbc)d”中含有“abc”,移动首指针 “a(abbc)d”中也含有“abc”,可以发现前一次寻找的最后一个字母c是满足要求所必须的,所以,即时移动了首指针,要使满足要求,c也必须包含,所以尾指针是不需要前移的,因此可以使用滑动窗口。 滑动窗口的使用:枚举不同首字母子串,在不同的首字母下,让原创 2022-05-03 18:21:42 · 253 阅读 · 0 评论