技术栈
leetcode medium
Espresso Macchiato
6 天前
leetcode medium
·
位操作
·
数组排序
·
leetcode 3644
·
leetcode周赛462
Leetcode 3644. Maximum K to Sort a Permutation
这一题核心在于说想明白要如何进行排序,问题的最终目标是将整个数组变得有序,因此原始数组当中所有位置与最终位置不同的数都需要被重新排序,也就是说这其中的任意两个数的位和的结果均至少要大于等于 k k k,否则就不存在一种交换方式能够交换这两个数。
Espresso Macchiato
17 天前
bfs
·
广度优先遍历
·
leetcode medium
·
leetcode 3629
·
leetcode周赛460
·
质数求解
·
质因素分解
Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation
这一题思路上还是比较直接的,就是一个广度优先遍历,考察各条路径当中最先到达终点的走法。但是,要进行路径的遍历,我们需要提前计算出jump点,也就意味着我们必须要提前找出所有的素数节点以及其对应的可以跳跃的位置,即对于那些非素数的节点,我们要找出他们各自都有哪些质因素才行。
Espresso Macchiato
2 个月前
leetcode medium
·
leetcode 3572
Leetcode 3572. Maximize Y‑Sum by Picking a Triplet of Distinct X‑Values
这周的双周赛简直了,4道题居然只做出了一题,看着都是动态规划,但是直接的动态规划基本都无法搞定了,必须要在其中的迭代公式上做大幅的优化才行,感觉真的,deepseek问世之后感觉leetcode上面的题目真的越来越难了,然后还经常被LLM完虐,真的心累,有时候真的不知道自己在坚持些啥……
Espresso Macchiato
2 个月前
剪枝
·
广度优先遍历
·
leetcode medium
·
堆排
·
leetcode周赛452
·
leetcode 3568
Leetcode 3568. Minimum Moves to Clean the Classroom
这一题我的核心思路就是广度优先遍历遍历+剪枝。显然,我们可以给出一个广度优先遍历来给出所有可能的走法直至无法继续或者捡完所有垃圾。
Espresso Macchiato
2 个月前
leetcode
·
leetcode medium
·
leetcode周赛452
·
leetcode 3567
Leetcode 3567. Minimum Absolute Difference in Sliding Submatrix
这一题想了一下,没想到啥好的思路,就是暴力直接求解了一下,直接一个三重循环强行求取了一下答案。唯一可以谈得上优化的就是在滑动过程中通过控制有序数列的方式来优化临近值的求解。
Espresso Macchiato
2 个月前
动态规划
·
leetcode medium
·
leetcode 3566
·
leetcode周赛452
Leetcode 3566. Partition Array into Two Equal Product Subsets
这一题我的实现还是比较暴力的,首先显而易见的,若要满足题目要求,则给出的数组的所有元素的乘积必然是target的平方,因此,我们可以快速由此判断该数组是否可分。
Espresso Macchiato
3 个月前
动态规划
·
leetcode medium
·
leetcode 3557
·
leetcode双周赛157
Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
这一题就是一个比较直接的动态规划的题目,我们只需要考察每一个位是否可以作为一个子串的开头,如果可以那么比较其被取用以及不被取用时的较大值将其进行返回,如果不可以,那么直接返回其不被取用时的值即可。
Espresso Macchiato
3 个月前
广度优先遍历
·
leetcode medium
·
leetcode周赛450
·
leetcode 3552
·
堆排
Leetcode 3552. Grid Teleportation Traversal
这一题的话核心就是一个广度优先遍历,我们只需要从原点开始,一点点考察其所能到达的位置,直至其最终到达终点即可。
Espresso Macchiato
3 个月前
leetcode
·
排序
·
leetcode medium
·
leetcode 3551
·
leetcode周赛450
Leetcode 3551. Minimum Swaps to Sort by Digit Sum
这一题思路上我实现的非常暴力,就是先求出正确的排列,然后从头考察每一个元素是否处在其目标位置上,如果没有,则给出一次置换。
Espresso Macchiato
3 个月前
leetcode
·
leetcode medium
·
图遍历
·
leetcode 3543
·
leetcode双周赛156
Leetcode 3543. Maximum Weighted K-Edge Path
这一题思路上就是一个遍历的思路,我们只需要考察每一个节点作为起点时,所有长为 k k k的线段的长度,在符合条件的结果当中选出最大值即可。
Espresso Macchiato
4 个月前
leetcode medium
·
dsu
·
leetcode 3532
·
leetcode周赛447
·
uf
Leetcode 3532. Path Existence Queries in a Graph I
这一题算是一个比较典型的DSU的题目,我们就是不断地根据前后节点的距离将其进行聚类,然后考察query当中的两个节点是否属于同一个簇即可。
Espresso Macchiato
4 个月前
leetcode
·
栈
·
leetcode medium
·
leetcode 3523
·
leetcode周赛446
Leetcode 3523. Make Array Non-decreasing
这一题思路上来说就是一个栈的问题,就是从后往前依次考察每一个元素,显然,当前位置要么被舍弃,要么被保留,但是无论如何其对应位置一定会留下一个至少不小于当前元素大小的新元素,因此,后续所有比起更小的元素都无法被保留。
Espresso Macchiato
7 个月前
leetcode
·
动态规划
·
leetcode medium
·
leetcode 3418
·
leetcode周赛432
Leetcode 3418. Maximum Amount of Money Robot Can Earn
这一题我的思路比较暴力,就是一个动态规划,本质上就是全量遍历,然后找到最优路径。给出python代码实现如下:
Espresso Macchiato
8 个月前
leetcode
·
z算法
·
leetcode medium
·
leetcode周赛428
·
leetcode 3388
Leetcode 3388. Count Beautiful Splits in an Array
这一题我的思路还是比较暴力的,首先,我们通过z算法,可以很快找到所有满足subarray 1为subarray 2的prefix的全部可能的分割方法。
Espresso Macchiato
10 个月前
leetcode
·
动态规划
·
leetcode medium
·
leetcode 3316
·
leetcode双周赛141
Leetcode 3316. Find Maximum Removals From Source String
这一题思路上的话就是一个动态规划的题目,我们仿照lcs,考察每一个位置是否可以drop即可。而关于lcs算法,网上有很多介绍文章,这里就不过多赘述了。
Espresso Macchiato
10 个月前
leetcode
·
滑动窗口
·
leetcode medium
·
leetcode 3306
·
leetcode周赛417
Leetcode 3306. Count of Substrings Containing Every Vowel and K Consonants II
这一题的话思路上就是一个滑动窗口,考察没一个点作为起始位置时,满足同时包含5个元音字符以及恰好 k k k个辅音字符的第一个位置,然后从该位置到其下一个辅音字符之间的任意一个位置都可以构成一个满足条件的substring。
Espresso Macchiato
10 个月前
leetcode
·
leetcode medium
·
leetcode双周赛140
·
leetcode 3301
Leetcode 3301. Maximize the Total Height of Unique Towers
这一题思路上还是比较直接的,我们只需要排序之后从大到小依次分配最大可能的高度即可。如果出现某个位置最大允许分配的高度为0,那么就说明无法构造成功,反之即可给出最大高度了。
Espresso Macchiato
1 年前
leetcode medium
·
lcs
·
leetcode 3302
·
leetcode双周赛140
·
最大公共子序列
Leetcode 3302. Find the Lexicographically Smallest Valid Sequence
这一题的话由于至多只能够修改一个字符,因此,我们就是要考察每一个字符前正向的最大公共子序列的长度和其后方的从后往前的最大公共子序列的长度。如果两者相加不小于目标目标字符串word2的长度减一,即表示调整当前位置上的字符的话即可获得一个子串使之与目标字符串word2相同。
Espresso Macchiato
1 年前
leetcode
·
leetcode medium
·
leetcode 3255
·
leetcode 3254
·
leetcode周赛137
Leetcode 3255. Find the Power of K-Size Subarrays II
这一题是题目3254的进阶版,其实主要就是增加了算法复杂度。整体上来说的话思路还是一个分段的思路,我们找到所有的满足条件的连续递增数列,显然他们之间不可能有交集。
Espresso Macchiato
1 年前
leetcode
·
leetcode medium
·
回文
·
leetcode 3240
·
leetcode双周赛136
Leetcode 3240. Minimum Number of Flips to Make Binary Grid Palindromic II
这一题的话要同时满足行列上都是回文,因此我们每次考察需要考虑四个角上对应的元素,考察通过最少次数的变换使之变得都相同,显然如果他们本身相同,那么不变即可,如果有三个元素相同,变剩下那个即可,如果有两个元素相同,随机变两个即可。且变换之后的1的个数总是4的倍数。