刷题总结
文章平均质量分 86
松鼠大哥
这个作者很懒,什么都没留下…
展开
-
【刷题总结】哈希系列问题
文章目录一、算法解析二、解题模板1、C++ 内相关API2、使用哈希集合查重三、哈希系列问题1、哈希表设计2、去重\判重问题(哈希集合)(1)重复元素查找(2)几数之和(3)求交集(4)是否循环问题(5)判断是否存在3、构造哈希表(1)键---下标(2)键 --- 统计个数(3)字母 --- 单词(字典映射)(5)其他4、滑动窗口类问题(哈希映射)5、哈希设计键(1)排序后字符串/数组为key(2)指针/节点作为key(3)矩阵中索引作为key(4)带掩码的字符串作为key6、前缀和 + hash问题一原创 2021-06-07 16:37:21 · 566 阅读 · 0 评论 -
【刷题总结】堆系列问题
文章目录一、堆的定义二、堆的实现三、堆的应用1、堆排序2、找前K大的元素3、第K大元素问题四、堆系列问题1、找前K大元素问题2、第K大元素问题3、找中位数问题4、堆排序-动态顺序的问题一、堆的定义堆的定义:堆是一种特别的二叉树,具有两个特性完全二叉树;每一个节点的值都必须 大于等于或者小于等于 其孩子节点的值。堆的特性插入元素:O(logN)删除元素:O(logN)获取 堆 中的最大值或最小值:O(1)堆的分类最大堆:堆中每一个节点的值 都大于等于 其孩子节点的值。所以最原创 2021-06-07 16:36:34 · 201 阅读 · 0 评论 -
【刷题总结】栈系列问题
文章目录一、算法介绍二、解题模板1、栈的实现2、栈的API3、深度优先4、单调栈问题三、栈系列问题1、栈的基础特征(1)设计题,用来实现其他结构(2)利用栈的基础特征2、括号&表达式运算&退格问题(1)括号匹配问题(2)表达式运算问题(3)退格问题3、单调栈4、树的遍历-深度优先5、图的遍历-深度优先一、算法介绍栈:后入先出栈系列问题:https://leetcode-cn.com/tag/stack/problemset/栈的典型问题 设计题 括号、表达式运算、字符串原创 2021-06-07 16:34:49 · 465 阅读 · 0 评论 -
【刷题总结】差分系列问题
文章目录差分1、差分数组定义2、差分数列题型解析3、差分典型题目差分1、差分数组定义原始数组a = {a[1]、a[2]、…、a[n]}差分数组b = {b[1]、b[2]、b[3]、…、b[n]} 此条件成立:a[i] = b[1] + b[2] + … + b[i]即:数组b为数组a的差分和,数组a为数组b的前缀和2、差分数列题型解析差分算法常用于区间更新数列值,当区间[L,R]序列中 [l, r]之间的每个数加上C,差分数组可以实现 O(1) 的时间复杂度更新,差分算法题型原创 2021-05-11 10:52:31 · 251 阅读 · 0 评论 -
【刷题总结】单调栈系列问题
文章目录单调栈问题特征单调栈问题解法单调栈系列题目1、下一个更大元素系列2、柱形图面积系列3、延展用法单调栈问题特征LeetCode官方讲解单调栈,就是栈的应用,里面的元素的大小按照他们所在栈内的位置,满足一定的单调性。单调栈里的元素具有单调性元素加入栈前,会在栈顶端把破坏栈单调性的元素都删除单调递增:栈可以找到元素向左向右遍历第一个比他小的元素,当元素出栈时,说明这个新元素是出栈元素向后找第一个比其小的元素,新栈顶元素是出栈元素向前找第一个比其小的元素单调递减:栈可以找到元素向左享有遍历第原创 2021-03-16 11:09:20 · 195 阅读 · 0 评论 -
【刷题总结】回文子串系列问题
文章目录一、回文子串常用模板方法1:动态规划方法2:中心拓展法方法3:二分查找,反向找子串rfind二、系列题目总结一、回文子串常用模板方法1:动态规划dp(i, j) 代表从区间[i, j ]直接的最长回文子串转移方程(视具体题目定)dp[i][j] = s[i] == s[j] ? dp[i+1][j-1] + 2: max(dp[i+1][j], dp[i][j-1]); // 如果s[i]和s[j]相同,即可接上成为回文子串,那在dp[i+1][j-1]基础上加上2// 若不相同,则为原创 2021-03-15 16:36:33 · 98 阅读 · 0 评论