获得徽章 25
- #刷题交流#
打卡第8天:《最少字符串操作次数》
解题思路:
1.统计字符频率:使用 Counter 统计字符串中每个字符的出现次数,并将这些次数存储在一个列表中。
2.处理高频字符:对于出现次数大于2的字符,通过贪心策略将其拆分为多个出现次数为1的字符,直到字符种类数达到26(小写字母的总数)或所有字符的出现次数都不大于2。
3.计算操作次数:对于每个字符,如果其出现次数为 x,则需要 x−1 次操作将其变为只出现一次。累加所有字符的操作次数即为最终答案。展开赞过评论1 - #刷题交流#
打卡第7天:《环形数组中的最大贡献值》
解题思路:
直接计算两个下标之间的距离。计算从数组末尾绕回到数组开头的情况。接下来,我们需要遍历所有可能的下标对 (i, j),并计算它们的贡献值 f(i, j)。为了优化计算,我们可以使用双层循环来遍历所有可能的下标对,并计算每对下标的贡献值。展开评论点赞 - #刷题交流#
打卡第六天:《最大矩形面积问题》
解题思路:
1.遍历所有可能的 k 值:从 1 到 n(数组的长度)。
2.对于每个 k 值,遍历数组:计算以每个元素为起点的 k 个相邻元素的最小值,并计算其面积。
3.记录最大面积:在每次计算面积时,更新最大面积。展开等人赞过评论4 - #刷题交流#
打卡第五天:《最少前缀操作问题》
解题思路:
1.初始化:首先计算字符串 S 和 T 的长度,分别记为 n 和 m。初始化一个变量 ans 为 n,表示最坏情况下需要 n 次操作(即删除 S 的所有字符)。
2.遍历比较:遍历 S 和 T 的每一个字符,直到其中一个字符串结束。在遍历过程中,记录 S 和 T 在相同位置上不同字符的数量 cnt。
3.更新最小操作数:对于每一个位置 i,计算当前位置之前的不同字符数 cnt 加上剩余需要删除的字符数(即 n−1−i),更新 ans 为这些操作数的最小值。
4.返回结果:遍历结束后,ans 即为最少需要的操作次数。展开等人赞过评论4 - #刷题交流#
打卡第四天:《最大UCC子串计算》
解题思路:
通过将字符串 S 分割成多个部分,每个部分之间原本是 "UCC" 子串的位置,然后计算在这些部分中通过编辑操作可以增加的 "UCC" 子串数量。核心思想是通过贪心策略,优先考虑在每个部分中通过替换操作增加 "UCC" 子串,然后再考虑插入操作。展开赞过评论2 - #刷题交流#
打卡第三天:《超市里的货物架调整》
解题思路:
1.遍历货架上的商品,使用字典来统计每个商品的出现次数。
2.根据顾客想要购买的商品种类,优先将这些商品放在货架的前面。
3.使用一个列表来存储调整后的货架顺序。
4.遍历顾客想要购买的商品种类,检查这些商品是否在调整后的货架顺序中。
5.如果商品在货架顺序中,卖出该商品并从货架顺序中移除。展开赞过评论1 - #刷题交流#
打卡第二天:《数字分组求偶数和》
解题思路:
1.遍历每个数字组,将其转换为单个数字的列表。
2.使用递归或迭代的方式,从每个数字组中选择一个数字,并计算它们的和。
3.检查和是否为偶数,如果是,则计数加一。展开赞过评论2 - #刷题交流#
打卡第一天:《找单独的数》
解题思路:
1.初始化 result 为 0,因为任何数与 0 异或的结果仍然是该数。
2.使用 for 循环遍历数组 cards 中的每一个元素。
3.在每次循环中,将 result 与当前元素 card 进行异或操作,并将结果赋值回 result。
4.遍历结束后,result 中存储的就是只出现一次的数字,直接返回 result。展开等人赞过215