自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 【三元组枚举中点】【树状数组】个人练习-Leetcode-1395. Count Number of Teams

看了题解还有用树状数组的写法。树状数组建议看这个视频(https://www.bilibili.com/video/BV1ce411u7qP/)了解下,就能明白三个相关函数。【三元组】中,中间的点总是特殊的,可以考虑枚举中点。,为1表示这个下标的数字出现过,为0表示没出现过。然后对这个桶数组求前缀和得到一个数组,这个数组就是。,找出两边的大于和小于中间点的数量,然后【左小✖️右大 + 左大✖️右小】就是答案。但知道树状数组了,该怎么应用到这个题目呢?,这样就可以知道,在某个位置。的数目,也就是潜在的。

2024-09-09 17:22:03 382

原创 个人练习-Leetcode-1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit

题目链接:https://leetcode.cn/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/description/但数据结构上自己写的一直很冗杂,主要原因是因为最大值和最小值可以重复,【修改。看了题解才发现用STL的multiset最简单。思路:实际就是保存子列的最大值和最小值,保证差不超过。,求最长的子列,使得数组中任意两个数的差不超过。一直增加,遇到不行的就修改。

2024-08-28 14:06:37 215 1

原创 【阶乘】个人练习-Leetcode-LCP 22. 黑白方格画

思路:虽然是简单题,但还想了一会的。因为【最终图案数】并不是【操作方法数】。比如2*2的格子,【先涂一行再涂一列】和【先涂一列再涂一行】得到的图案是一样的。我们发现涂的行列具体是哪几行哪几列并不影响最终黑格子的数目,因此可以先得出【需要涂黑。题目链接:https://leetcode.cn/problems/ccw6C7/description/,每一次操作可以把方格的某一整行或者某一整列涂黑,求使得黑色格子数字为。求阶乘的话可以用一个数组来保存结果,避免重复计算。的【最终图案】的个数。

2024-07-15 13:37:03 259 1

原创 【哈希表】个人练习-Leetcode-2025. Maximum Number of Ways to Partition an Array

等于某个值的「位置」的数量】,也就是说,两个哈希表中存的都是“左半边的和”,因为只要【左半边的和=全部和/2】实际上就是【左半边和=右半边和】了。看题解时我其实绕了好久,这里理解的重点是,分清楚【所谓的“左右”是谁的左右】。的左右”已经无关紧要了,因为问题已经转换成了找满足【左半边的和=某个前缀和=全部和/2】的。】来定义两个哈希表的,这两个哈希表代表的“左右”,是【改变的位置。因此题解中的“左右”、两个哈希表所代表的“左右”,都是指改变位置。求改变/不改变后的数组中,能够找到的最大的下标。

2024-07-08 16:22:58 349

原创 【大顶堆】个人练习-Leetcode-2170. Minimum Operations to Make the Array Alternating

思路:很明显贪心就行,保留奇数下标元素中,出现次数第一大和第二大的元素及其次数(保留至第二大是因为要满足奇偶下标元素不等)。同样保留偶数下标元素中,出现次数第一大和第二大的元素及其次数。主要还是写起来比较麻烦,刚开始自己维护了个保留第一大和第二大的方法,虽然过了,但看着太丑陋了,就换成了用一个大顶堆来维护的方法。此外,考虑到数组只有一个元素的情况,特殊处理。,要求将其变为alternating数组,即其所有奇数下标的元素相等,所有偶数下标的元素相等,且奇数元素下标的元素不等于偶数下标的元素。

2024-07-07 15:11:20 373

原创 【3维BFS】个人练习-Leetcode-LCP 79. 提取咒文

看了题解才知道有一种“3维BFS”的存在。类似于一个魔方,在每一层进行BFS,上面一层满足了条件(找到下一个字母)后才能往下一层转移。转移了并不会终止上一层的BFS,这样就避免了遗漏可能的最小的其他路径。位置开始,可以移动(上下左右)或者提取字母,求组成字符串的最小【移动+提取次数】思路:显然是BFS,然而BFS无法保证结果“最小”。一个例子就是,如果要找。,那么如果在BFS时先按行找,就会陷入陷阱,因为明显按列找才是最短的。并且还学到了新的【上下左右偏移】的写法,只用到一个长为5的一维数组。

2024-07-04 19:52:17 238

原创 【哈希表】【字符串】个人练习-Leetcode-1814. Count Nice Pairs in an Array

题目链接:https://leetcode.cn/problems/count-nice-pairs-in-an-array/description/思路:一开始的思路是伪加法,取一个对,从低位开始加。看了题解才发现可以转换原等式为。,如果当前位不想等就返回。题目大意:给出一个数列。的值,这样复杂度就降为。

2024-07-04 13:43:37 995

原创 【遍历链表】个人练习-Leetcode-LCR 029. 循环有序列表的插入

(这个并非真正的头),这个链表从头到尾是非递减的,唯一可能出现递减的地方是【尾部连回头部】处。(3)有一种特殊情况是全链表的元素相同。此时我们无法找到(1)(2)中所谓的【尾部接到头部】处(因为不存在。相同,那么直接插到其后面就行。否则无论是大了还是小了,都得再往后递归。比尾部值大或者比头部值小,都可以直接插在尾部值后。,要求将该值插入链表中,保持非递减性质不变。思路:(1)先考虑正常的从头到尾非递减的情况,如果插入值。(2)如果刚好碰到尾部接头部处,那么如果。的情况了),因此单独做判断。

2024-07-03 22:50:28 318

原创 【滑动窗口】个人练习-Leetcode-992. Subarrays with K Different Integers

题目链接:https://leetcode.cn/problems/subarrays-with-k-different-integers/description/刚好就是【新增子列数】,因为新增子列是连续的,并且必然包含。思路:主要是转换题意,可以先求【不同元素最多为。往右移动了,使得不同元素数只会增加或者不变,个】的子列数,两者相减就是【不同元素刚好为。个】的子列数,然后再求【不同元素最多为。可以作为下一轮的新起点,因为下一轮。区间里的不同元素个数刚好为。,求【不同元素刚好为。开始,只要从上一轮的。

2024-07-02 10:58:25 220

原创 【字符串处理】【双指针】个人练习-Leetcode-777. Swap Adjacent in LR String

思路:操作中可以看出,这只不过是让L和X或R和X交换位置而已,L、R的相对位置不会变。因此先把所有X去掉,看看只剩下LR的两个字符串是否一致。题目链接:https://leetcode.cn/problems/swap-adjacent-in-lr-string/description/我原本以为这就到头了,但没想到还没过,看了题解才发现,这个交换中,只能右移】这个条件。这个步骤用双指针完成即可。中,相对位置对应的每个L和R,是否满足【只能右移,因此还要对比一下。,返回是否存在方法使得。

2024-07-01 21:00:35 273

原创 【贪心】【哈希表】个人练习-Leetcode-846. Hand of Straights

做完一下就通过了,但时间不是很理想。于是改了一下,每轮找【残存次数大于0的最小的数】的下标可以复用,直接从上一轮的继承就行了。题目链接:https://leetcode.cn/problems/hand-of-straights/思路:因为题目的限制很死,如果能够分那么分的结果一定是确定的。然后从小到大遍历,每轮从【残存次数大于0的最小的数】开始(可以用一个。题目大意:给出一数列,求是否能刚好将它们分成若干组,每组的元素数量为。先排序,并记录每种元素出现的次数,用哈希表。一样的效果),然后往后。

2024-06-29 23:22:04 301

原创 【BFS】【并查集】个人练习-Leetcode-815. Bus Routes

BFS

2024-06-28 19:47:43 357

原创 【贪心】个人练习-Leetcode-2271. Maximum White Tiles Covered by a Carpet

然后遍历,考虑毯子覆盖每片连续瓷砖的右端点的情况。实际上我和题解想法是一样的,没想到题目的时间瓶颈其实并不在贪心…思路:贪心做,从左往右遍历的话,必然是将毯子的右端放在某片连续的瓷砖的右端点是最优的,因为如果再往右,只会碰到空的,瓷砖数。片连续瓷砖的右端),用二分法找到第一个右端点大于【毯子的左端点】的连续瓷砖片。,每个元素代表这个区间被瓷砖覆盖(左右都是闭合的)。来表示当前能覆盖的连续瓷砖块的和(只覆盖到一部分也算)。我的做法是,在遍历的每一轮时(毯子盖在。,求这块毯子能覆盖的最大瓷砖数。

2024-06-27 15:48:57 468

原创 【贪心】【01字符串处理】个人练习-Leetcode-2311. Longest Binary Subsequence Less Than or Equal to K

贪心

2024-06-26 14:16:12 129

原创 【差分数组】个人练习-Leetcode-2249. Count Lattice Points Inside a Circle

差分数组

2024-06-26 12:02:27 940

原创 【二分】个人练习-Leetcode-793. Preimage Size of Factorial Zeroes Function

二分

2024-06-25 20:16:49 202

原创 【快慢指针】个人练习-Leetcode-142. Linked List Cycle II

快慢指针

2024-06-25 19:36:20 839

原创 【层序遍历】个人练习-Leetcode-102. Binary Tree Level Order Traversal

BFS

2024-06-25 11:36:41 249

原创 【DFS】个人练习-Leetcode-LCS 03. 主题空间

DFS

2024-06-25 10:51:47 246

原创 【贪心】个人练习-Leetcode-1647. Minimum Deletions to Make Character Frequencies Unique

贪心

2024-06-24 23:14:03 285

原创 【字符串】个人练习-Leetcode-面试题 16.08. English Int LCCI

leetcode

2024-06-24 19:41:23 99

原创 【位运算】【前缀和】个人练习-Leetcode-1177. Can Make Palindrome from Substring

leetcode

2024-06-08 22:07:57 337

原创 【位运算】个人练习-Leetcode-2897. Apply Operations on Array to Maximize Sum of Squares

leetcode

2024-06-07 12:27:48 292

原创 【set】个人练习-Leetcode-817. Linked List Components

leetcode

2023-08-08 11:08:40 1312

原创 【树的遍历】个人练习-Leetcode-449. Serialize and Deserialize BST

leetcode

2023-07-20 19:06:02 255

原创 【整数处理】个人练习-Leetcode-172. Factorial Trailing Zeroes

leetcode

2023-05-31 11:00:20 708

原创 【滑动窗口】【单调队列】个人练习-Leetcode-2373. Largest Local Values in a Matrix

滑动窗口,单调队列

2023-05-23 10:36:24 429

原创 【递增栈】个人练习-Leetcode-845. Longest Mountain in Array

递增栈

2023-05-18 10:33:54 447

原创 【剪枝】个人练习-Leetcode-2468. Split Message Based on Limit

剪枝,字符串处理

2023-05-17 12:45:10 377

原创 【前缀和】【位掩码】【奇偶性】【状态压缩】个人练习-Leetcode-1371. Find the Longest Substring Containing Vowels in Even Counts

前缀和,位掩码,状态压缩,奇偶性

2023-05-11 11:13:11 107

原创 【贪心】个人练习-Leetcode-2541. Minimum Operations to Make Array Equal II

贪心

2023-05-10 17:37:48 78

原创 【DFS+剪枝】个人练习-Leetcode-面试题 16.04. Tic-Tac-Toe LCCI

DFS 剪枝

2023-05-01 09:55:17 626

原创 【BFS】【图的遍历】个人练习-Leetcode-1992. Find All Groups of Farmland

图的遍历

2023-04-30 12:42:13 92

原创 【前缀和】个人练习-Leetcode-1781. Sum of Beauty of All Substrings

前缀和

2023-04-29 10:46:50 84

原创 【贪心】个人练习-Leetcode-2195. Append K Integers With Minimal Sum

贪心

2023-04-27 10:37:20 620 1

原创 【排列组合】个人练习-Leetcode-62. Unique Paths

排列组合

2023-04-26 10:38:17 484

原创 【单调栈】个人练习-Leetcode-456. 132 Pattern

单调栈

2023-04-21 13:52:37 170

原创 【贪心】个人练习-Leetcode-1363. Largest Multiple of Three

leetcode

2023-04-20 11:00:04 380

原创 【树的DFS】【LCA】个人练习-Leetcode-2096. Step-By-Step Directions From a Binary Tree Node to Another

DFS,LCA

2023-04-20 10:57:40 66

原创 【折半枚举】【双指针】个人练习-Leetcode-2035. Partition Array Into Two Arrays to Minimize Sum Difference

折半枚举

2023-04-19 14:01:10 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除