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,但是一直超时,就不班门弄斧了……