【Leetcode Daily】2516每种字符至少取K个
题目浅析
想查看原题可以点击题目链接。
简单地说,就是给一个字符串,由a、b、c组成,每次可以从最左侧或最右侧删除一个,求在每个字符至少删除 k 个的情况下,删除最少的数目。
思路分享
从【Leetcode Daily】1658将x减到0的最小操作数这样的题中学到了,滑动窗口对于这种对最左侧和最右侧操作的题,往往采用所谓的“逆向”思路,也就是最大化地“去除”,从而最后计算出结果。
拿本题来说,可以先记录整个字符串的各个字符的数目,窗口的内容并非是记录最左侧或最右侧的删除,而是记录最左侧和最右侧操作完后,中间的部分,目标是最大化这部分,从而间接最小化所求数目。
代码解答(强烈建议自行解答后再看)
- 陆爻齐的参考解法
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!