数据结构与算法
算法笔记
weixin_45601578
这个作者很懒,什么都没留下…
展开
-
回溯算法2
分割问题举例,以给定的输入字符串str=“aabbacdd”为例,将str分割成一些子串,使每个子串都是回文子串,输出所有符合的子串。注意:子串的长度不定,说明你可以任意的分割。处理这个问题,除了使用穷举的思路,在逻辑上也没有更好的思路了。因此分割问题也是回溯算法的典型。原创 2023-03-08 11:58:35 · 89 阅读 · 0 评论 -
回溯算法1
回溯算法框架和经典例子原创 2023-03-04 09:57:26 · 78 阅读 · 0 评论 -
二叉树篇3
二叉树的还原与构造原创 2023-03-03 14:03:27 · 99 阅读 · 0 评论 -
二叉树篇2-递归与回溯
2.原创 2023-02-27 23:59:13 · 172 阅读 · 0 评论 -
二叉树篇1-遍历-递归遍历,栈遍历的使用
本篇的重点是比较并理解递归与迭代的写法。先验: 关于二叉树的概念,种类在STL容器篇中说明过,因此这里直接用原创 2023-02-21 11:06:09 · 598 阅读 · 0 评论 -
前k个高频元素-堆排序
这里展示了priority_queue这一数据结构的应用,有一些注意的点:1.priority_queue默认是大顶堆,这里使用了小顶堆,原因是优先队列的pop()函数删除的是队首的元素,为了保存前k个频率最高的元素,只能将频率低的元素放在堆顶,删除。因此无法用排序的方法得到数据流中的前k个最大的元素。统计频次已经有很多经验了,使用unordered_map结构可以很快的统计频次信息,则关键的问题是如何得到前k的元素(这里我避免使用了“(堆更像是过滤的操作,把不符合的都筛出去,得到前面的)出前k的元素。原创 2023-02-20 20:20:20 · 66 阅读 · 0 评论 -
滑动窗口的最大值问题-单调队列
问题:从滑动窗口中获取最大值?原创 2023-02-14 19:19:00 · 47 阅读 · 0 评论 -
Stack应用
问题:计算机中后缀表达式的计算,如何实现?先验:STL库中栈相关的知识。原创 2023-02-11 21:54:29 · 53 阅读 · 0 评论 -
字符串的KMP算法
KMP算法原创 2023-02-10 22:52:13 · 41 阅读 · 0 评论 -
string字符串
注意:c++中变量类型分为内置类型与复合类型。内置类型:int,float,char,short等。string,用户定义的struct,class等都属于复合类型。c++中字符串并非内置类型。原创 2023-02-08 17:16:12 · 69 阅读 · 0 评论 -
哈希表set,map
哈希表基础要点原创 2023-02-05 14:03:03 · 248 阅读 · 0 评论 -
左闭右开原则
对数组,容器,二维数组遍历操作时,遵循左闭右开原则可以使代码更有序,尤其是在二分法代码中。典型的问题:给定一个mxn的二维数组,按照如图所示的方式遍历输出。这个问题如果不使用左闭右开的原则书写代码,则常常会使调试代码陷入混乱。因为遍历循环的边界控制原则不一致出现各种bug,因此要使用统一的左闭右开原则控制代码。void traverseMatrix(int **mat, int m, int n){ //二维数组形参传入 **matint startx=0, starty=0, end原创 2023-02-02 23:12:54 · 357 阅读 · 0 评论 -
链表数据结构
链表的结构,如何定义链表?单链表?多链表?struct TreeNode {int val; //值TreeNode* next;//还可以定义一些TreeNode的构造函数。就形成了一个基本的链表结构。}单链表如何遍历?双向链表如何遍历?对单链表来说,只能从头结点向后遍历,即head=head.next; 双向链表有head和tail两个“哨兵”结点,可以沿两个方向遍历。链表中的结点的增/删/改,甚至反转等操作,要用到pre, cur, nxt三个指针。问题: 给定原创 2023-01-31 20:38:46 · 41 阅读 · 0 评论 -
数组基础算法
数组在内存中以连续地址存储。例如一维数组 int nums[]={1, 2, 3, 4, 5}; //使用{}初始化数组。二维数组 int nums[][]={{1, 2}, {3, 4}};//二维数组实际上存储的是一个指针数组(*ptr)[], //void* (*ptr)[];数组元素若想要进行增/删,则需要对元素进行移动。同时要维护一个size成员。输入: int nums[]={0, 1, 1, 2, 2, 3, 4, 0, 2},待删除元素为2;输出: nums;方法1原创 2023-01-31 19:03:55 · 48 阅读 · 0 评论