LeetCode笔记:Weekly Contest 349

这篇具有很好参考价值的文章主要介绍了LeetCode笔记:Weekly Contest 349。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • LeetCode笔记:Weekly Contest 349
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
  • 比赛链接: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

到了这里,关于LeetCode笔记:Weekly Contest 349的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AtCoder Beginner Contest 349

    (n) 个人游戏,每局有一人 (+1) 分,有一人 (-1) 分。 给定最后前 (n-1) 个人的分数,问第 (n) 个人的分数。 零和游戏,所有人总分是 (0) ,因此最后一个人的分数就是前 (n-1) 个人的分数和的相反数。 神奇的代码 对于一个字符串,如果对于所有 (i geq 1) ,都有恰好

    2024年04月13日
    浏览(56)
  • LeetCode笔记:Biweekly Contest 108

    LeetCode笔记:Biweekly Contest 108 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-108/ 给出题目一的试题链接如下: 2765. Longest Alternating Subarray 1

    2024年02月13日
    浏览(39)
  • LeetCode笔记:Biweekly Contest 112

    LeetCode笔记:Biweekly Contest 112 0. 吐槽 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-112/ 这一次的双周赛题目委实是有点水了,难怪第一名的

    2024年02月10日
    浏览(37)
  • LeetCode笔记:Biweekly Contest 107

    LeetCode笔记:Biweekly Contest 107 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 算法优化 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-107/ 给出题目一的试题链接如下: 2744. Find Maximum N

    2024年02月11日
    浏览(36)
  • 【Leetcode Sheet】Weekly Practice 5

    给出一个含有不重复整数元素的数组 arr ,每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树,每个整数可以使用任意次数。其中:每个非叶结点的值应等于它的两个子结点的值的乘积。 满足条件的二叉树一共有多少个?答案可能很大,返回 对 109 + 7 取余 的结果。 提示:

    2024年02月10日
    浏览(36)
  • 【Leetcode Sheet】Weekly Practice 3

    你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出: indices , sources , targets 。 要完成第 i 个替换操作: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么也不做 。 如果出现

    2024年02月11日
    浏览(47)
  • 【Leetcode Sheet】Weekly Practice 25

    给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 提示: 链表中节点数目在范围 [0, 300] 内 -100 = Node.val = 100 题目数据保证链表已经按升序 排列 【模拟】 给你两个数字字符串 num1 和 num2 ,以及两个整数 max_s

    2024年01月22日
    浏览(37)
  • 【Leetcode Sheet】Weekly Practice 24

    给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] 。 回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的欧式距离相等( 需要考虑元组的顺序 )。 返回平面上所有回旋镖的数量。 提示: n == points.length 1 = n = 500 points[i].length == 2 -104 = xi, yi

    2024年01月18日
    浏览(36)
  • 【Leetcode Sheet】Weekly Practice 2

    给你一个整数 n ,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 提示: 1 = n = 10^5 【原始代码】: 【优化代码】 【其他思路】 将n转为字符串,例如n是1234,则char temp=‘1234’ 后续直接遍历strlen(temp),计算temp[i]-\\\'0’的值即可 给你一个 n x n 整数矩阵

    2024年02月12日
    浏览(35)
  • 两个数组的交集(LeetCode 349)

    题目 349. 两个数组的交集  思路         将较长的序列放入一个set后,再加入短序列的数字,判断当前数字是否添加成功,如果添加成功则表示set中没有该数字,则不属于两个数组之间的交集,将该数字从set中移除(移除是因为保证set的纯洁性 即只含有长序列中的数字);

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包