数据结构
文章平均质量分 89
半路杀出来的小黑同学
"量变产生质变"的忠实信徒
展开
-
单调栈——巧用栈解决“找到最近一个比其大的元素”问题
刷leetcode遇到的单调栈结构,这里介绍了单调栈,并举例了几个常见的应用场景原创 2022-08-21 10:13:49 · 456 阅读 · 0 评论 -
【C++】优先队列详细讲解(原理+STL库调用)
详解Cpp中优先队列的原理及其STL库中的建堆、操作堆的步骤原创 2022-08-03 17:30:20 · 2420 阅读 · 0 评论 -
DFS/BFS 算法遍历二维数组-----岛屿问题解决
岛屿系列算法问题是经典的面试高频题,这里参考labuladong的一文秒杀所有岛屿问题,写出了关于C++的DFS/BFS的框架,供以后复习回顾。原创 2022-07-12 16:46:52 · 1335 阅读 · 2 评论 -
labuladong算法小抄中图算法的学习笔记(c++版)
labuladong算法小抄中是以java为工具编写的,而图论中的典型算法中JAVA模板与C++模板差别较大,因此我整理了大佬小抄中的各个对于图论经典算法的总结,并写出了自己所理解出的C++模板(全部通过了例题验证)。.....................原创 2022-07-12 00:32:04 · 996 阅读 · 0 评论 -
专门处理字符串前缀相关的操作——(一次性的 new)的字典树(前缀树)Trie总结
不同于网上Trie的c++模板中大多数一次次new的方法,为了提高速度,这里采用了一次性new的方法,分模块功能的实现了Trie,并对力扣上Trie的基本题目做了应用场景的说明!原创 2022-07-09 16:25:42 · 307 阅读 · 0 评论 -
labuladong算法小抄中链表算法的学习笔记(c++版)
手把手刷链表算法递归秒杀反转链表--但效率上不如迭代1、反转整个链表2、反转链表前N个节点3、反转链表的一部分---重点理解!如何K个一组反转链表--迭代反转链表如何判断回文链表--链表的前序后序!...原创 2022-07-06 19:32:57 · 520 阅读 · 0 评论 -
详解C++如何取随机数以及处理各种随机问题
本文详细阐述了C++中取随机数的函数,并通过解决各种要求需要的随机数场景应用以来加深对其函数的应用能力与对随机问题的分析能力。原创 2022-06-29 00:32:59 · 6617 阅读 · 0 评论 -
详解C++区间题之线段树(动态开点)框架代码(附加一个有趣的差分有序集合方法)
详解C++的线段树(动态开点)框架代码——别怕区间叠加(附加一个有趣的差分有序集合方法)。不仅仅介绍关于动态开点的线段树的c++模板,还介绍了其是如何秒杀三道困难题(lc中的715、699、732)的!..................原创 2022-06-22 23:15:13 · 1008 阅读 · 0 评论 -
链表分解的时候,勿忘断开原链表中的每个节点的 next 指针(以LeetCode86.分隔链表为例)
作者在刷力扣的时候,遇到了需要断开链表中next指针这个问题。当时想不明白为何会报错,画了好多遍图都感觉没问题,搜也搜不到,最终debug发现了问题所在,希望分享给跟我一样苦于链表next迫害的小白菜鸟。...原创 2022-06-14 21:19:04 · 785 阅读 · 2 评论 -
关于“labuladong的算法小抄”的学习笔记---第0章核心框架汇总的前半部分框架(c++版)
由于labuladong算法小抄大部分代码都是java,而作者其实是学c++的,因此,本笔记在记录的同时,对作者的java代码进行了转换,希望也能够帮到大家。因为怕文章太长,不好阅读,因此第0章分为了上半部分框架和下半部分技巧......原创 2022-05-28 15:36:38 · 803 阅读 · 0 评论 -
对C++中有序容器的各类操作(包括迭代器的解引用)总结
目录一、关联容器的概述(有序容器属于关联容器)二、无序容器三、有序容器四、有序容器的最常操作----查找方法五、掉落的方块1、题目描述2、暴力枚举法(迭代dp的味~)3、有序集合法一、关联容器的概述(有序容器属于关联容器)c++中有种关联容器,其支持通过关键字高效的查找和提取元素。而STL中定义类8种关联容器,其中每个容器都符合下列三个特点:1、是一个map或者一个set。map保存关键字和其对应的值。而set只保存关键字。2、要求关键字唯一(普通的map/set)或不要求唯一(带multi的set原创 2022-05-27 12:54:14 · 2831 阅读 · 0 评论 -
力扣之数据结构基础的刷题总结
内容一、数组总结1、vector数组2、构造哈希表---数组里面存LIST二、字符串总结1、int与char的转换2、字符串相加3、字符串相乘-----大数运算4、快速抽出以空格为间隔的字符串--学会抽子字符串5、删除字符串的当前字符6、在字符串加入字符串7、字符串和数字的转换三、链表总结1、对于入门阶段的题目就出现过的“环形链表”2、相交链表3、删除链表的重复元素4、两两交换链表的节点5、重排链表---寻找链表中点 + 链表逆序 + 合并链表6、K个一组翻转链表...原创 2022-05-21 20:27:30 · 939 阅读 · 0 评论 -
力扣之数据结构入门的刷题总结
目录一、数组总结1、vector数组2、哈希表二、字符串三、链表四、二叉树0、树的定义1、二叉树的前序、中序、后序遍历(递归)2、二叉树的层序遍历(BFS广度优先遍历)--用队列3、二叉树的中序遍历(DFS深度优先遍历)--用堆栈4、 二叉树中的递归思想(以最大深度为例)五、算法总结1、最大和的连续子数组(数组)2、两数之和(数组&树)3、一维动态规划(数组)4、快慢指针(链表)5、map如何找到字符在原字符串的位置?(字符串)六、语法总结1、 for循环2、STL里面的find操作3、switch原创 2022-04-16 21:49:20 · 1889 阅读 · 0 评论 -
vector创建数组(一维、二维)的超详细总结
今天刷leetcode的时候,发现vector都还没用明白,但是STL早晚要解决明白,因此作者专门写下这篇文章,以供自己复习等使用,快速回忆其vector的用法,不再丢人原创 2022-04-04 14:50:28 · 15665 阅读 · 2 评论 -
多重链表表示矩阵时,第i列和第i行的head节点是同一个结点
背景:上着浙大慕课的数据结构网课,在第二节中做了如题的一个题目,也看了其他大佬的一些解释。最后想通,故做一下记录帮助其他人。定义的head节点结构如上图所示,head节点含有三个成员,因此我们需要做到尽可能程度地去利用这三个成员。多重链表图从上图可以看到,在课件中的图片虽然容易理解,但是可以看出绿色画圈的地方都是空闲着的。而通过紫色的圈又可以明白其实第i行的head和第i列的head是连向同一个term节点(虽然第三个不是直接相连,但是也等同于直接相连),而在循环回去时,也都会经过该head原创 2022-03-30 21:27:28 · 919 阅读 · 0 评论