题型和技巧总结
文章平均质量分 95
题型总结
Miraclo_acc
积极输出带动主动输入
展开
-
经典基础算法总结(排序、二分、KMP、树、图)
经典算法与题目对应列表:https://leetcode.cn/circle/discuss/bawPH2/原创 2023-03-18 15:39:30 · 1600 阅读 · 1 评论 -
其他常用算法与数据结构总结(板子)
其他常用算法与数据结构总结原创 2023-04-19 12:41:03 · 882 阅读 · 0 评论 -
14.中位数贪心
aa假定所有的nums[i]均位于数轴上的nums的位置,要求我们在数轴上找出一个点t,使得所有nums[i]到t的距离之和最小。tnums[0]nums[n-1],否则我们「至少」能够将目标点调整为 最小的nums[0]或 最大的nums[n-1]来得到更小的距离总和。考虑变为a[0]和a[n-1]的中间位置xa[0]移动b步,a[n-1]移动c步,总共b+c步,当变为x+1时,a[0]移动b+1步,a[n-1]移动c-1步,总共b+c步。因此变为a[0]和a[n-1]中间节点时,总的步数是相同的。原创 2023-12-21 14:33:52 · 1414 阅读 · 0 评论 -
13.二进制枚举练习题
请你从原请求列表中选出若干个请求,使得它们是一个可行的请求列表,并返回所有可行列表中最大请求数目。个分部,它们之间有的有道路连接。一开始,所有分部通过这些道路两两之间互相可以到达。请你返回关闭分部的可行方案数目,满足每个方案里剩余分部之间的最远距离不超过。由于现在是换楼的季节,部分员工想要换一栋楼居住。),同时保证剩下的分部之间两两互相可以到达且最远距离不超过。,所以从请求列表中选出的若干个请求是可行的需要满足。,如果该请求列表可行,应该要有两个员工搬入楼。,关闭一个分部后,与之相连的所有道路不可通行。原创 2023-12-17 21:01:14 · 253 阅读 · 0 评论 -
12.位运算的性质(异或的性质)
与;或;异或。原创 2023-11-24 13:38:39 · 153 阅读 · 0 评论 -
11.前缀和、异或前缀和、差分数组练习题
前缀和可以用来求中等给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。原创 2023-11-23 17:13:56 · 190 阅读 · 0 评论 -
10.分组循环练习题
来自0x3f:分组循环适用场景,按照题目要求,数组会被分割成若干组,且每一组的判断/处理逻辑是一样的。原创 2023-11-23 15:14:07 · 224 阅读 · 0 评论 -
9.子数组计数「子串统计」问题
注意,某些子字符串可能是重复的,但你统计时也必须算上这些重复的子字符串(也就是说,你必须统计。(最大长度就维护哈希表第一个出现的值first,求最短长度就维护最后一个出现的值last。**注意:**子数组是数组中的一个连续非空的元素序列。的最长连续子数组,并返回该子数组的长度。以整数形式表示并返回趣味子数组的数目。中的唯一字符,并返回唯一字符的个数。按照其末尾字符的下标分组,考虑两组。按照其末尾字符的下标分组,考虑两组。的所有子字符串中的唯一字符)。结尾的字串,在末尾添加上。结尾的字串,在末尾添加上。原创 2023-09-20 16:48:34 · 321 阅读 · 0 评论 -
8.反悔贪心
如果能增大课程数量,就增大课程数量,如果不能增大课程数量,就在保持课程数量不变的前提下,尝试减少总时长,使得后续增大课程数量的概率增加。当汽车到达加油站时,它可能停下来加油,将所有汽油从加油站转移到汽车中。**注意:**数组的子序列是经由原数组删除一些元素(可能不删除)而产生的新数组,且删除不改变其余元素相对顺序。比较长,上完需要花很多时间,可能把这些时间花在其它课程,早就上完好几门课了。经验告诉我们,在准备期未考试的时候,先考的课程先准备。天时间,在后续的遍历中,更有机会上完更多的课程。原创 2023-09-20 16:31:53 · 326 阅读 · 0 评论 -
7.树状数组练习题
为什么大佬们一眼看出是树状数组呢?不是一眼看出树状数组,而是要把~~【找两个相邻的最小值之间还有几个数没删掉】~~的问题转变成动态区间和问题,这个转化过程才是最重要的, 至于你用什么数据结构求动态区间和是次要的,很多数据结构都能做,最常用的树状数组和线段树(这题比较特殊有序集合也能做),树状数组容易套板,码量少,常数还比线段树小。所以你才会看到大佬们清一色的树状数组。原创 2023-05-08 18:14:20 · 484 阅读 · 0 评论 -
6.线段树练习题(日程安排表、掉落的方块、区间和检索)
线段树详解:https://leetcode.cn/problems/range-module/solution/by-lfool-eo50/原创 2023-05-04 23:40:48 · 541 阅读 · 0 评论 -
5.扫描线练习题(LC-850.求矩形面积、LC-391)
扫描线法是一种求矩形面积并/周长并的好方法。假设有一条扫描线从一个图形的下方扫向上方(或者左方扫到右方),那么通过分析扫描线被图形截得的线段就能获得所要的结果。该过程可以用线段树进行加速。面积的求法其实可以简化为sum截线段长度times扫过的高度。这也是扫描线算法最基础的应用。具体:我们可以画出一根线来,扫过这个多边形的所有面积。这根线从最左边的边开始,每遇到一条边,就停下来计算之前扫到的面积,即为距上一条边的距离与扫描线落在图形上的长度之积,再加到之前的和上面。原创 2023-04-29 15:30:00 · 1107 阅读 · 0 评论 -
4.字典树练习题
字典树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。设计一个算法:接收一个字符流,并检查这些字符的后缀是否是字符串数组。添加其他一些词组成另一个较长的单词——我们称这个词为。词典中其他单词逐步添加一个字母组成。,你所设计的算法应当可以检测到。中最长的一个单词,该单词是由。(root) 的概念,可以词根。(其他),可以形成新的单词。你需要输出替换之后的句子。原创 2023-03-26 19:22:56 · 376 阅读 · 0 评论 -
3.并查集、并查集+离线、并查集+倒叙回答
*对于实际情况来说,情况往往不同,许多问题以在线(on line)的方式给出算法所需的数据,例如磁盘调度问题中,用户对磁盘的访问请求是无法预知的,它是随着时间的推移一个接着一个地给出的。对于节点 x 及其邻居 y,如果 y 所处的连通分量的最大节点值不超过 vals[x],那么可以把 y 所处的连通块合并到 x 所处的连通块中。如果此时这两个连通块的最大节点值相同,那么可以根据乘法原理,把这两个连通块内的等于最大节点值的节点个数相乘,加到答案中。并查集中连通分量的个数 - 空地的个数,就是岛屿数量。原创 2023-03-24 16:27:16 · 719 阅读 · 0 评论 -
2.判定二分图问题(染色法(DFS))
我们用两种颜色对图进行染色,如果可以完成染色,那么就说明可以将所有人分进两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。当可以用这种方法将所有人分进两组时,返回。定义:如果能将一个图的节点集合分割成两个独立的子集。,并使图中的每一条边的两个节点一个来自。其中每个节点都有一个介于。是一个节点数组,由节点。,都存在一条位于节点。集合,就将这个图称为。), 我们想把每个人分进。,表示不允许将编号为。如果图是二分图,返回。原创 2023-03-17 16:23:18 · 1031 阅读 · 0 评论 -
1.区间合并计算问题(LC-1326、LC-1024、LC-55、LC-45)
难度困难128在 x 轴上有一个一维的花园。花园长度为n,从点0开始,到点n结束。花园里总共有n + 1个水龙头,分别位于。给你一个整数n和一个长度为n + 1的整数数组ranges,其中ranges[i](下标从 0 开始)表示:如果打开点i处的水龙头,可以灌溉的区域为。请你返回可以灌溉整个花园的。如果花园始终存在无法灌溉到的地方,请你返回。原创 2023-02-21 21:03:12 · 445 阅读 · 0 评论