算法日记
文章平均质量分 73
一起刷算法,致力于总结归纳出来刷题模板。
让算法成为可复用,规范化的方法论。
Revenge2322
笔耕不辍,思考不断, 立志成为知名技术分享博主!
展开
-
代码随想录算法训练营 DAY14 | 二叉树专题
解析:基本的递归操作,先找到终止条件是root == nullptr ,让后模拟左右反转。然后看成基元操作, 假定已经实现功能的基元操作,最后返回root节点。leetcode 对称二叉树解析: 对称二叉树,终止条件,执行条件运用了过关斩将法,把不可能的的答案排除,留下最后一种才能通关,此时应该缩小视角,将对比条件看成一个个小的节点,而不是一个二叉树。原创 2023-01-28 23:21:08 · 141 阅读 · 0 评论 -
代码随想录算法训练营 DAY12 | 栈与队列专题
解析:这道题的时间复杂度是o(n) ,相当于另开了一个辅助队列,本道题的亮点是,辅助队列其实可以自己构造,deque 比queue的构造面更广。实现思路是,如果加入的数比前面的数大,就把前面的数全弹出来,在进行填充。原因是,下一个滑动窗口没有前一个滑动窗口的第一个。用priority_queue优先级队列,可以实现大顶堆,还可以自己定义排序方法,同时用vector容器储存元素。解析:牢记住构造队列,是一种非常舒服的数据结构,实际上开始考察STL的构造运用。leetcode 滑动窗口的最大值。原创 2023-01-27 11:11:02 · 274 阅读 · 0 评论 -
代码随想录算法训练营 DAY11 | 栈与队列专题
解析: 栈模拟消消乐,加辅助vector数组。leetcode 删除字符串所有相邻的重复字符。leetcode 逆波兰表达式。leetcode 有效的括号。解析:遇到加减乘除就消消乐。解析:还是模拟消消乐哦。原创 2023-01-25 21:46:54 · 151 阅读 · 0 评论 -
代码随想录算法训练营 DAY9 | 字符串专题
解析:利用了STL 和 数学思想, 做了这么多题了,实际上算法就是灵活运用STL和一些特定方法,与数学结合更是妙不可言了。s+s = 2Nm ,破坏首尾 , s+s = 2(N-1)m ,N>=2。推论如果它是的话中间必定出现过,逆否命题,如果中间没出现过,那么一定不是。解析: kmp学了两天还是不会写,绷不住了,没事,我是oop程序员,有STL就先用STL。leetcode 找出字符串中的第一个匹配项。leetcode 重复的字符子串。原创 2023-01-23 20:08:31 · 225 阅读 · 0 评论 -
代码随想录算法训练营 DAY10 | 栈与队列专题
解析: st1 相当于装填容器,st1只负责push装入, 如果st2 为空,就把st1的所有元素装填进去,让后st2进行弹出即可。解析:一个队列循环成圈,可以模拟栈。leetcode 用队列实现栈。leetcode 栈实现队列。原创 2023-01-23 17:34:12 · 72 阅读 · 0 评论 -
代码随想录算法训练营 DAY8 | 字符串专题
解析:强烈推荐stringstream的使用,相当于java中的split ,并且可以进一步转化为为任意类型。解析:真的就是对STL的运用啊啊啊啊啊啊。leetcode 反转字符串中的单词。解析: 简单的利用STL 反转函数。leetcode 反转字符串2。leetcode 左旋转字符串。leetcode 反转字符串。解析:双指针原地掉换位置。解析:真没啥好说的。原创 2023-01-18 20:45:56 · 86 阅读 · 0 评论 -
代码随想录算法训练营 DAY7 | 哈希专题
难道,难道我只能使用最后的必杀技了嘛,我从脑海深处,慢慢拔出双指针这把利剑,双指针?巧妙的使用两个指针,在数组间移动,竟然能达到减少多层for循环的效果。解析: 利用hashmap当中间储存器,分别把前两段的和,和后两段的和统计出来,再遍历两个hashmap来确定四数之和。解析: 其实这道题和leetcode 242 一样的,本质思想都是分门别类把,还是桶思想,把相同的属性放在一个桶里面,没什么特别之处。双指针搭配排序才能发挥出巨大的威力,双指针的根本在于,利用顺序,对比,不断的移动,扩张,收缩。原创 2023-01-18 18:19:10 · 102 阅读 · 0 评论 -
代码随想录算法训练营 DAY6 | 哈希表专题
hashmap在循环查找的时候也大有用处,相当于用空间换时间了。本来暴力解法两层for循环。用hashmap保存已经遍历过的,开辟新的空间,可以少一次for循环查找。这是hashmap的一种经典用法原创 2023-01-16 15:12:45 · 111 阅读 · 0 评论 -
代码随想录算法训练营 DAY4 | 链表专题
leetcode 两两交换链表节点。原创 2023-01-15 23:13:59 · 86 阅读 · 0 评论 -
代码随想录算法训练营 DAY3 | 链表专题
3.中间的元素,选择跳过删除,头元素选择后移头指针。leetcode 删除链表元素。1.先创建链表指针index。看成两个节点的链表,让后递归。leetcode 反转列表。原创 2023-01-13 19:09:17 · 149 阅读 · 0 评论 -
代码随想录算法训练营 DAY2 | 数组专题
滑动窗口,双指针,模拟原创 2023-01-13 16:14:41 · 148 阅读 · 0 评论 -
代码随想录算法训练营 DAY1 | 二分查找
算法训练营DAY1 二分查找原创 2023-01-11 22:57:08 · 277 阅读 · 0 评论 -
回溯模板全解
回溯法也可以叫做回溯搜索法,它是一种搜索的方式。其实是每一次递归后再返回上一层,由单一深度搜索拓宽为深度加广度搜索。原创 2022-09-04 20:18:46 · 698 阅读 · 1 评论 -
构建二叉树模板大全
有许多关于构建二叉树的题目,并且这些题目有固定的模板,我将对这类题目将进行分类总结。本篇致力于让读者能够融会贯通,抓住要领,建立模板化思维,看见一题想到一类。构造二叉树一般分为构造普通的二叉树,和构造二叉搜索树。构造二叉树我们学会一种思想,就是第一步先找当前根节点看哪一个数组能够明确确定根节点。第二步划分左区间,右区间。这里需要考察的是对vector的掌握,明确左开右闭,并且如何拷贝,如何resize。二叉搜索树的构建,也是先寻找当前根节点。只不过这里是对一个vector进行操作。......原创 2022-08-30 17:38:42 · 801 阅读 · 0 评论 -
二叉搜索树统一化解题模板
所有二叉搜索树的题的逻辑就是,对二叉搜索树进行增删查改。 因为中序遍历二叉搜索树等于遍历有序数组,所以我们把二叉搜索树转化为有序数组,对数组的增删查该还不爽么??原创 2022-08-27 10:33:57 · 588 阅读 · 1 评论 -
算法日记之小根堆
算法小根堆解决前k大原创 2022-08-17 23:03:43 · 1426 阅读 · 0 评论 -
递归模板
大多数同学遇见递归题目,往往有一种模棱两可的感觉。写递归算法的人,往往分成两种。这篇文章将告诉你递归的真正方法。让你不在迷茫做递归,保证学会!为回溯打下基础原创 2022-08-25 19:35:31 · 1129 阅读 · 2 评论 -
二叉树层序遍历统一化模板
BFS广度优先遍历,DFS深度优先遍历统一化模板。二叉树前中后序遍历原创 2022-08-18 16:40:19 · 274 阅读 · 0 评论