LeetCode笔记:Biweekly Contest 93
Posted Espresso Macchiato
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode笔记:Biweekly Contest 93相关的知识,希望对你有一定的参考价值。
1. 题目一
给出题目一的试题链接如下:
1. 解题思路
这一题按照题意翻译一下,然后找出最大值就行了。
2. 代码实现
给出python代码实现如下:
class Solution:
def maximumValue(self, strs: List[str]) -> int:
def fn(s):
try:
return int(s)
except:
return len(s)
return max(fn(s) for s in strs)
提交代码评测得到:耗时42ms,占用内存13.8MB。
2. 题目二
给出题目二的试题链接如下:
1. 解题思路
这一题同样就是基本按照题目翻译一下就行。
我们找到每一个点作为中心时其邻接的最大的k个正值点,作为找到的星图,然后计算其最大值即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def maxStarSum(self, vals: List[int], edges: List[List[int]], k: int) -> int:
if k == 0:
return max(vals)
graph = defaultdict(list)
for u, v in edges:
heapq.heappush(graph[u], -vals[v])
heapq.heappush(graph[v], -vals[u])
res = -math.inf
for u, val in enumerate(vals):
s = val
q = graph[u]
for _ in range(k):
if q == []:
break
v = -heapq.heappop(q)
if v <= 0:
break
s += v
res = max(res, s)
return res
提交代码评测得到:耗时2788ms,占用内存59.4MB。
3. 题目三
给出题目三的试题链接如下:
1. 解题思路
这一题说来惭愧,做算是做出来了,但是完整的理论证明倒是没想得很明白,只是直觉地感觉必须是间隔走个来回这样。
感觉用反证法应该可以说明这个问题,不过体谅下病号吧,既然通过了全部测试样例应该就没啥太大问题了,就不细想了……
2. 代码实现
给出python代码实现如下:
class Solution:
def maxJump(self, stones: List[int]) -> int:
n = len(stones)
s1 = max([0] + [stones[i+2] - stones[i] for i in range(0, n-2, 2)])
s2 = max([0] + [stones[i+2] - stones[i] for i in range(1, n-2, 2)])
return max(s1, s2, stones[1]-stones[0], stones[-1]-stones[-2])
提交代码评测得到:耗时708ms,占用内存28.6MB。
4. 题目四
给出题目四的试题链接如下:
这一题实在是没啥思路,放弃了……
以上是关于LeetCode笔记:Biweekly Contest 93的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode笔记:Biweekly Contest 79
LeetCode笔记:Biweekly Contest 93
LeetCode笔记:Biweekly Contest 89
LeetCode笔记:Biweekly Contest 69