-
LeetCode笔记:Weekly Contest 349
-
1. 题目一
- 1. 解题思路
- 2. 代码实现
-
2. 题目二
- 1. 解题思路
- 2. 代码实现
-
3. 题目三
- 1. 解题思路
- 2. 代码实现
- 4. 题目四
-
1. 题目一
- 比赛链接:https://leetcode.com/contest/weekly-contest-349
1. 题目一
给出题目一的试题链接如下:
- 2733. Neither Minimum nor Maximum
1. 解题思路
这一题我实现的比较暴力,就是先找到最大最小值,然后顺序检索找出第一个不等于这两个值的数返回。
2. 代码实现
给出python代码实现如下:
class Solution:
def findNonMinOrMax(self, nums: List[int]) -> int:
_min = min(nums)
_max = max(nums)
for x in nums:
if x != _min and x != _max:
return x
return -1
提交代码评测得到:耗时381ms,占用内存16.4MB。
2. 题目二
给出题目二的试题链接如下:
- 2734. Lexicographically Smallest String After Substring Operation
1. 解题思路
这一题思路整体也还好,就是找到第一段不包含a
的最长连续子串,将其减一即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def smallestString(self, s: str) -> str:
n = len(s)
idx = 0
l, r = -1, -1
while idx < n and s[idx] == "a":
idx += 1
l = idx
while idx < n and s[idx] != "a":
idx += 1
r = idx
if l == n:
return s[:-1] + "z"
def op(ch):
if ch == "a":
return "z"
return chr(ord(ch)-1)
sub = "".join(op(ch) for ch in s[l:r])
return s[:l] + sub + s[r:]
提交代码评测得到:耗时255ms,占用内存22.5MB。
3. 题目三
给出题目三的试题链接如下:
- 2735. Collecting Chocolates
1. 解题思路
今天状态真的是不好,这道题把我卡了n久,简直了……
本质上来说,就是遍历一下最大移动距离为0到n-1的情况,然后对于任意最大移动距离为k的情况下,对于任意一个点所需的最小cost就是其本身到之前k个点当中最小值的大小,我们用一个动态规划即可快速得到。
综上,我们即可得到我们的最终答案。
2. 代码实现
给出python代码实现如下:
class Solution:
def minCost(self, nums: List[int], x: int) -> int:
n = len(nums)
dp = [[cost for cost in nums] for _ in range(n)]
for i in range(1, n):
for j in range(n):
dp[i][j] = min(dp[i-1][j], nums[(j-i+n) % n])
costs = [sum(s) + i * x for i, s in enumerate(dp)]
return min(costs)
提交代码评测得到:耗时5046ms,占用内存25.3MB。
4. 题目四
给出题目四的试题链接如下:
- 2736. Maximum Sum Queries
这道题我放弃了,实在是毫无思路……文章来源:https://www.toymoban.com/news/detail-479824.html
如果有大佬知道怎么做的话请务必赐教一下,感激不尽!文章来源地址https://www.toymoban.com/news/detail-479824.html
到了这里,关于LeetCode笔记:Weekly Contest 349的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!