LeetCode笔记:Weekly Contest 339

本文是关于LeetCode周赛339的解题笔记,涵盖了四道题目:找最长平衡子串、根据条件转换数组为二维数组、老鼠和奶酪问题以及一个未解决的最小逆序操作问题。分别给出了Python代码实现及思路解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 题目一

给出题目一的试题链接如下:

1. 解题思路

这一题没啥好说的,按照题目翻译一下就是了……

2. 代码实现

给出python代码实现如下:

class Solution:
    def findTheLongestBalancedSubstring(self, s: str) -> int:
        i, n = 0, len(s)
        res = 0
        while i < n:
            zeros = 0
            while i < n and s[i] == '0':
                i += 1
                zeros += 1
            ones = 0
            while i < n and s[i] == '1':
                i += 1
                ones += 1
            res = max(res, 2 * min(zeros, ones))
        return res

提交代码评测得到:耗时44ms,占用内存13.8MB。

2. 题目二

给出题目二的试题链接如下:

1. 解题思路

这题思路也简单,用一个counter记录下各个元素的个数,然后分配到不同的行即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def findMatrix(self, nums: List[int]) -> List[List[int]]:
        cnt = Counter(nums)
        res = []
        while True:
            s = []
            for k in cnt:
                if cnt[k] == 0:
                    continue
                s.append(k)
                cnt[k] -= 1
            if s == []:
                break
            res.append(s)
        return res

提交代码评测得到:耗时58ms,占用内存13.9MB。

3. 题目三

给出题目三的试题链接如下:

1. 解题思路

这题就是按照gap排序,然后把gain最多的k个cheese分配给老鼠1,其他全给老鼠2即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def miceAndCheese(self, reward1: List[int], reward2: List[int], k: int) -> int:
        s = sum(reward2)
        diff = [x-y for x, y in zip(reward1, reward2)]
        diff = sorted(diff, reverse=True)
        return s + sum(diff[:k])

提交代码评测得到:耗时856ms,占用内存28.6MB。

4. 题目四

给出题目四的试题链接如下:

这一题没搞定,思路上感觉就是一个bfs,但是一直超时,就不班门弄斧了……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值