leetcode题解

Espresso Macchiato5 个月前
leetcode medium·leetcode题解·leetcode 3201·leetcode周赛404
Leetcode 3201. Find the Maximum Length of Valid Subsequence I这一题我们注意到,要使得条件成立,那么选择出来的数列在奇数位和偶数位上的数字奇偶性必然相同,因此,我们只需要讨论以下4种情况就行了:
Espresso Macchiato5 个月前
leetcode·leetcode medium·leetcode题解·leetcode 3195·leetcode周赛403
Leetcode 3195. Find the Minimum Area to Cover All Ones I这一题还是挺简单的,只要找到所有1所在的元素的上下左右4个边界,作为目标矩形的四个边即可。给出python代码实现如下:
Espresso Macchiato5 个月前
动态规划·leetcode medium·leetcode题解·leetcode 3186·leetcode周赛402
Leetcode 3186. Maximum Total Damage With Spell Casting这一题就是一个简单的动态规划的题目,我们只需要考虑每一个位置上的元素取或者不取即可:给出python代码实现如下:
Espresso Macchiato5 个月前
leetcode medium·leetcode题解·leetcode 3175·leetcode双周赛132
Leetcode 3175. Find The First Player to win K Games in a Row这一题我的解答比较暴力,基本就是暴力解答,唯一优化的就是对于特殊情况进行了一下剪枝,具体来说的话,如果k大于长度n,那么显然最后首先达到胜利条件的一定是最大的那个元素,而对于其他的情况,我就暴力求解了。
Espresso Macchiato6 个月前
leetcode medium·leetcode题解·leetcode双周赛130·leetcode 3143
Leetcode 3143. Maximum Points Inside the Square这一题由于都是从中心开始的正方形,因此,我们只要找到所有tag下的点距离中心的位置最小的点,然后看有多少可以包括其中即可,我们可选的点必然是最近的点,次近的点的距离就是我们的边际,因此我们就可以定义出距离还有边界,看一共可以包括多少个不同tag的点。
Espresso Macchiato6 个月前
leetcode medium·leetcode题解·leetcode 3128·leetcode双周赛129
Leetcode 3128. Right Triangles这一题的话对于任意一个位置,如果该位置为1,假设其所在行中1的个数 r i r_i ri,所在列中1的个数为 c j c_j cj,那么以该位置作为三角形顶点的三角形的个数就是 ( r i − 1 ) ⋅ ( c j − 1 ) (r_i-1)\cdot(c_j-1) (ri−1)⋅(cj−1),因此,我们只需要先求出所有行和列当中的1的个数,然后遍历一下所有1的位置,将对应的三角形个数相加即可得到最终的答案。
Espresso Macchiato6 个月前
leetcode medium·leetcode题解·leetcode 3137·leetcode周赛396
Leetcode 3137. Minimum Number of Operations to Make Word K-Periodic这一题的话我们只需要将原始的字符串按照k个字母为一组进行分组,然后看各自出现的频次即可,取出最大频次的subarray作为最终的目标,即可快速得到答案为总的group数减去最大单一频次。
Espresso Macchiato7 个月前
动态规划·leetcode hard·leetcode题解·leetcode 3117·leetcode周赛393
Leetcode 3117. Minimum Sum of Values by Dividing Array这一题思路上就是一个动态规划,我们只需要考察每一个元素是否需要放在当前的group当中还是作为新的group的开始元素,然后在所有的可能结果当中取最小值即可。
Espresso Macchiato8 个月前
滑动窗口·leetcode medium·leetcode题解·leetcode周赛389·leetcode 3085
Leetcode 3085. Minimum Deletions to Make String K-Special这一题思路上来说的话我们只需要统计一下word当中所有的字符出现的频次,然后依次排序,我们只需要考察各个删除方案使得所有存在的频次之间的差值不多于 k k k即可。
Espresso Macchiato8 个月前
排列组合·leetcode medium·leetcode题解·leetcode 3084·leetcode周赛389
Leetcode 3084. Count Substrings Starting and Ending with Given Character这一题其实挺简单的,只要看一下目标的character在string当中出现了几次即可,然后就是一个 C n 2 C_n^2 Cn2的头尾选择问题即可。
Espresso Macchiato8 个月前
排序算法·leetcode medium·leetcode题解·leetcode 3075·leetcode周赛388
Leetcode 3075. Maximize Happiness of Selected Children这一题只需要想清楚一个点就行了:因此,我们的选取策略就是将孩子按照happiness进行排序,然后选择最大的k个孩子从大到小依次进行选取就行了,这样就能确保获得最大的score。
Espresso Macchiato9 个月前
leetcode medium·回文·leetcode题解·leetcode 3035·leetcode周赛384
Leetcode 3035. Maximum Palindromes After Operations这一题的话因为可以任意交换,因此事实上要考察回文的最大个数,我们只需要统计所有单词当中字符出现的频次,看看他们能组成多少回文即可。
Espresso Macchiato10 个月前
leetcode medium·leetcode题解·leetcode 3016·leetcode周赛381·频率统计
Leetcode 3016. Minimum Number of Pushes to Type Word II这道题的话思路其实还是蛮简单的,显然我们的目的是要令对给定的word在键盘上敲击的次数最小。因此,我们只需要对单词当中按照字符的频次进行倒序排列,然后出现频次越高的字母就安排尽量靠前的位置即可。
Espresso Macchiato1 年前
leetcode medium·leetcode题解·leetcode 2975·leetcode周赛377
Leetcode 2975. Maximum Square Area by Removing Fences From a Field这一题思路上是比较直接的,就是直接求出横向和纵向上可能的interval的大小,然后取交集之后返回最大值即可。
Espresso Macchiato1 年前
滑动窗口·leetcode medium·leetcode题解·leetcode 2958·leetcode双周赛119
Leetcode 2958. Length of Longest Subarray With at Most K Frequency这一题思路上其实也很简单,就是一个滑动窗口的思路,遍历窗口的左边界,平移获得使得其内部字符的frequency不超过k的最大右边界,然后取各个窗口长度的最大值即可。
Espresso Macchiato1 年前
leetcode medium·leetcode题解·leetcode 2962·leetcode周赛375·边界选择问题
Leetcode 2962. Count Subarrays Where Max Element Appears at Least K Times这一题思路上同样很直接,就是找到最大的元素所在的全部的位置坐标,然后分别考虑取 i i i到 i + k i+k i+k个最大元素时substring左右可以选择的起止点位置数目,相乘累加即可。
Espresso Macchiato1 年前
leetcode hard·leetcode题解·leetcode 2949·leetcode周赛373·字符串分段
Leetcode 2949. Count Beautiful Substrings II这一题真的很丢脸,居然没有搞定,是看了大佬们的思路之后才想明白的,就感觉丢脸丢大了……这道题讲道理挺简单的,而且相似类型的题目其实以前做过挺多的了,想不通但是为啥没有直接想到思路……
Espresso Macchiato1 年前
leetcode medium·leetcode题解·leetcode 2939·leetcode 周赛372·xor
Leetcode 2939. Maximum Xor Product这一题思路上来说我们就是逐位进行考虑。对于xor操作,显然我们只有以下两种情况:因此,这里我们主要需要考虑的就是第二种情况,也就是对于这些位上的01分配问题,而这个不难证明,假设其他位上有结论 a > b a>b a>b,那么总是将1分配到b上面可以使得结果更大。
Espresso Macchiato1 年前
贪婪算法·leetcode medium·leetcode 2914·leetcode双周赛116·leetcode题解
Leetcode 2914. Minimum Number of Changes to Make Binary String Beautiful这一题思路很简单,就是一个贪婪算法。显然,从头往后考察每一个字符,如果它与前一个字符不相同,那么我们必然只有两个选择: