leetcode hard

Espresso Macchiato13 天前
leetcode hard·leetcode周赛482·leetcode 3791
Leetcode 3791. Number of Balanced Integers in a Range这一题是leetcode周赛482的第四题,是一道hard的题目。这一题其实算是一个标准的模板题了,就是转换为求不超过 n n n的平衡数,然后使用动态规划进行解答即可。
Espresso Macchiato13 天前
迭代·leetcode hard·leetcode双周赛172·leetcode 3782
Leetcode 3782. Last Remaining Integer After Alternating Deletion Operations这一题是Leetcode双周赛172的第四题,是一道hard难度的题目。不过这一题思路上还是十分简单的,就是一个迭代的思路。
Espresso Macchiato14 天前
滑动窗口·leetcode hard·leetcode双周赛171·leetcode 3768
Leetcode 3768. Minimum Inversion Count in Subarrays of Fixed Length这一题是leetcode双周赛171的第四题,是一个hard的题目。这一题思路上就是一个滑动窗口的题目,我们只需要考察长度为 k k k的连续窗口中加入一个元素与减去一个元素的状态即可。
Espresso Macchiato14 天前
leetcode hard·leetcode周赛481·leetcode 3785
Leetcode 3785. Minimum Swaps to Avoid Forbidden Values这一题是Leetcode周赛481的第三题,是一道hard难度的题目。这一题的话,不难证明,如果可以存在 n n n个元素可以交换满足均不对应forbidden的元素,那么其所需的交换次数最少为 ⌈ n 2 ⌉ \lceil\frac{n}{2}\rceil ⌈2n⌉。
Espresso Macchiato14 天前
leetcode hard·leetcode 3786·leetcode周赛481
Leetcode 3786. Total Sum of Interaction Cost in Tree Groups这一题是Leetcode周赛481的第四题,是一道hard难度的题目。这一题我没有自己搞定,是看了一下大佬的解题方法搞定的。
Espresso Macchiato2 个月前
算法·leetcode·职场和发展·leetcode hard·leetcode 3748·leetcode周赛476·区间求和
Leetcode 3748. Count Stable Subarrays这一题是Leetcode周赛476的第四题,是一道hard的题目。这一题其实我自己没算是做出来,看了大佬的解答之后弄出来的,整体思路就是现在原始数组上面找出所有的非递减数组,然后顺序进行整理,然后每一段子数组所能够构成的所有subarray的数目就是 m ( m + 1 ) 2 \frac{m(m+1)}{2} 2m(m+1),其中 m m m为当前这段子数组的长度。
Espresso Macchiato2 个月前
leetcode hard·前序和数组·leetcode双周赛169·leetcode 3739
Leetcode 3739. Count Subarrays With Majority Element II这一题是Leetcode双周赛169的第四题,是一个hard的题目。但它其实和题目Leetcode 3737是完全一样的,只是后者对于复杂度要求更低,允许通过暴力循环的方式求解。
Espresso Macchiato2 个月前
leetcode·leetcode hard·容斥原理·leetcode 3729·leetcode周赛473·前序和数组
Leetcode 3729. Count Distinct Subarrays Divisible by K in Sorted Array对这一题而言,如果不用考虑去重,那么显然我们只需要求出给定数组的前序和数组,然后将其元素按照其对 k k k的余数进行统计,那么对于其答案就是: a n s w e r = ∑ i = 0 k c i ∗ ( c i − 1 ) 2 answer = \sum\limits_{i=0}^{k} \frac{c_i * (c_i-1)}{2} answer=i=0∑k2ci∗(ci−1)
Espresso Macchiato3 个月前
算法·leetcode·职场和发展·leetcode hard·树的遍历·leetcode 3715·leetcode周赛471
Leetcode 3715. Sum of Perfect Square Ancestors这一题整体的思路上就是一个树的遍历,我们遍历每一个节点,然后考察其所有的父节点当中有多少个元素与之相乘可以得到完全平方数即可。
Espresso Macchiato3 个月前
leetcode·职场和发展·广度优先遍历·二分法·leetcode hard·leetcode 3710·leetcode双周赛167
Leetcode 3710. Maximum Partition Factor这一题思路上首先是一个二分法的思路,我们找到最大的临界距离,使得当任何大于该距离的情况下,无论怎么切分点集,都至少有一侧存在两个点之间的曼哈顿距离小于该给定距离。
Espresso Macchiato3 个月前
动态规划·leetcode hard·矩阵乘法·leetcode 3700·leetcode周赛469
Leetcode 3700. Number of ZigZag Arrays II这一题事实上就是上一题3699. Number of ZigZag Arrays I的进阶版本,主要的变化就是增加了 n n n的复杂度, n n n最大可以取到 1 0 9 10^9 109,因此暴力的迭代显然就不现实了,但其核心的迭代公式依然还是上一题中分析的那样: { u n + 1 i = ∑ j = i + 1 r d n j d n + 1 i = ∑ j = l i − 1 u n j \left\{ \begin{aligned} u_{n+1}^i &= \sum\limits_{j=i
Espresso Macchiato3 个月前
并查集·leetcode hard·dsu·uf·leetcode 3695·leetcode双周赛166
Leetcode 3695. Maximize Alternating Sum Using Swaps这一题算是一个比较基础的DSU的题目,就是把所有swap的位置聚合,然后聚合的每一个簇当中的任意元素均可两两互换,最后我们只要考察每一个簇当中的元素顺序排列,大的元素全排到偶数位置上,小的元素全放到奇数位置上,最后看结果的大小即可。
Espresso Macchiato6 个月前
leetcode hard·segment tree·分段树·leetcode 3624·leetcode周赛459
Leetcode 3624. Number of Integers With Popcount-Depth Equal to K II这一题就是一个segment tree的变体,唯一的区别在于其操作不同于一般的简单求和或者求最大最小值,而是返回一个合并后的Counter即可。
Espresso Macchiato7 个月前
动态规划·leetcode hard·leetcode周赛451·leetcode 3563
Leetcode 3563. Lexicographically Smallest String After Adjacent Removals这次的最后一题同样没有自力搞定,简直了……这道题还是一个动态规划的题目,就是提前构建一下消解空间,给定一个 N 2 N^2 N2的矩阵dp,其中任意元素dp[i][j]表示子串s[i:j+1]是否可以被可以被完全remove掉。
Espresso Macchiato8 个月前
动态规划·背包问题·leetcode hard·leetcode 3562·leetcode周赛451
Leetcode 3562. Maximum Profit from Trading Stocks with Discounts这一题没有搞定,思路上整体走偏了,看了一下别人的解答,结合deepseek的回答看了半天,终于是搞明白了里面的道道,也是醉了……
Espresso Macchiato8 个月前
动态规划·leetcode hard·拓扑序列·leetcode 3530·leetcode双周赛155
Leetcode 3530. Maximum Profit from Valid Topological Order in DAG这一题的整体思路就是一个动态规划的思路,我们只需要在当前可以访问的位置当中遍历一下所有的可能性,然后取出其中的最大值即可。
Espresso Macchiato9 个月前
leetcode·动态规划·leetcode hard·leetcode 3500·leetcode双周赛153
Leetcode 3500. Minimum Cost to Divide Array Into Subarrays这一题非常惭愧,没有自己搞定,基本是抄的大佬们的代码,甚至抄完之后还是没完全理解,非常惭愧……整体这一题的思路还是比较简单的,就是一个动态规划,剩下的问题就在于怎么写这个迭代式。
Espresso Macchiato10 个月前
动态规划·leetcode hard·leetcode 3490·leetcode周赛441·满足条件的自然数
Leetcode 3490. Count Beautiful Numbers这道题能够自力搞定还是蛮开心的。这道题主体的思路其实很清晰,就是将题目变换一下,变成写作一个count(n)函数来求取不大于数字 n n n的全部beautiful number的数目,这样,原始问题的答案就变成了count(r) - count(l-1)。因此,我们只需要考察这个count函数的实现即可,不过到这里其实也没怎么简化问题也就是了。
Espresso Macchiato1 年前
贪婪算法·二分法·leetcode hard·leetcode 3449·leetcode周赛436
Leetcode 3449. Maximize the Minimum Game Score这一题思路上就是一个二分法,尝试各个score,看看是否可以满足在给定的m次操作限制下,使得每一个数都不小于给定的score。
Espresso Macchiato1 年前
动态规划·leetcode hard·分类讨论·leetcode 3389·leetcode周赛428
Leetcode 3389. Minimum Operations to Make Character Frequencies Equal这一题从答题从test的结果来说来说做出的人很少,主要确实有些繁琐,因为还是那种分类讨论的问题,然后思路上也比较暴力。