[LeetCode周赛复盘] 第 342 场周赛20230423

news2024/11/17 7:23:15

[LeetCode周赛复盘] 第 342 场周赛20230423

    • 一、本周周赛总结
    • 二、 6387. 计算列车到站时间
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 三、6391. 倍数求和
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 四、6390. 滑动子数组的美丽值
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 五、 6392. 使数组所有元素变成 1 的最少操作次数
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • easy局。
  • T1 模拟。
  • T2 模拟。
  • T3 SortedList爽题。
  • T4 暴力gcd/st+二分。
    在这里插入图片描述

二、 6387. 计算列车到站时间

链接: 6387. 计算列车到站时间

1. 题目描述

在这里插入图片描述

2. 思路分析

按题意模拟即可。

3. 代码实现

class Solution:
    def findDelayedArrivalTime(self, a: int, d: int) -> int:
        return (a + d) % 24 

三、6391. 倍数求和

链接: 6391. 倍数求和

1. 题目描述

在这里插入图片描述

2. 思路分析

贴模板。

  • 都乘到一起找质因数就是分别找质因数然后去重,因此用set记录并集即可。

3. 代码实现

class Solution:
    def sumOfMultiples(self, p: int) -> int:
        ans = 0  # 
        for i in range(1, p + 1):
            if i % 3 == 0 or    i % 5 == 0 or i % 7 == 0:
                ans += i
        return ans

四、6390. 滑动子数组的美丽值

链接: 6390. 滑动子数组的美丽值

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 直接拿名次树滑窗即可。。

  • 没有名次树可以直接开101数组,桶排序暴力计数。

3. 代码实现

class Solution:
    def getSubarrayBeauty(self, nums: List[int], k: int, x: int) -> List[int]:
        n = len(nums)
        from sortedcontainers import SortedList
        q = deque()
        s = SortedList()
        ans = []
        for r,v in enumerate(nums):
            q.append(v)
            s.add(v)
            if len(q)>k:
                s.remove(q.popleft())
            if len(q) == k:
                p = s[x-1]
                ans.append(min(p,0))
        return ans 

五、 6392. 使数组所有元素变成 1 的最少操作次数

链接: 6392. 使数组所有元素变成 1 的最少操作次数

1. 题目描述

在这里插入图片描述

2. 思路分析

蓝桥杯原题n<=1e5。需要st+二分。
  • 分析题意可以先贪一下,最优方案是先用最小的代价拼一个1出来,然后用这个1感染其余位置。
  • 最小代价一定是相邻的几个数gcd到一起变成1。如果这个长度是d,那么需要操作d-1次变1,最后操作n-1次。答案就是d+n-2。
  • 由于数据量小,直接暴力gcd即可,复杂度n方(忽略gcd)
  • 如果数据量大,预处理st表,可以计算每段的gcd,由于以某个端点向右的gcd一定是递减的,因此可以二分。枚举左端点,找到最小的为1的段即可。

  • 暴力写法就不放了,直接放st.

3. 代码实现

class SparseTable:
    def __init__(self, data: list, func=or_):
        # 稀疏表,O(nlgn)预处理,O(1)查询区间最值/或和/gcd
        # 下标从0开始
        self.func = func
        self.st = st = [list(data)]
        i, N = 1, len(st[0])
        while 2 * i <= N+1:
            pre = st[-1]
            st.append([func(pre[j], pre[j + i]) for j in range(N - 2 * i + 1)])
            i <<= 1

    def query(self, begin: int, end: int):  # 查询闭区间[begin, end]的最大值
        lg = (end - begin+1).bit_length() - 1
        # print(lg)
        return self.func(self.st[lg][begin], self.st[lg][end - (1 << lg) + 1])

class Solution:
    def minOperations(self, a: List[int]) -> int:
        n = len(a)
        if gcd(*a) != 1:
            return -1
        c = a.count(1)
        if c:
            return (n-c)
        st = SparseTable(a, gcd)
        ans = inf
        for i in range(n):
            def query(k):
                return st.query(k, i)

            pos = bisect_right(range(i), 1, lo=0, key=query)
            # print(pos,i)
            if pos and query(pos-1) == 1:
                ans = min(ans, i-pos+1)

        return (ans + n - 1)        

六、参考链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Grid (基础DP)

题目&#xff1a; 给一个 HW 的网格&#xff0c;网格由‘.’和‘#’组成&#xff0c;一开始在左上角 (1,1)(1,1) 每一步只能向右或向下走&#xff0c;不能经过 # 格子&#xff0c;求走到右下角 (H,W) 有多少种走法。 其中 2<H,W<1000&#xff1b; 答案对 10^97 取模。…

ZBlog安装SSL证书

Z-BlogPHP简介 Z-BlogPHP是一款强大的博客式建站系统和CMS程序Z-BlogPHP支持PHP 5.2 - 7.4、8.0 - 8.1,可运行在市面上所有的操作系统和WEB服务器之上。 大部分部署ZBlogPHP程序使用Linux比较普遍&#xff0c;这是介绍使用宝塔控制面板安装SSL证书方法&#xff1a; 1、进入Gw…

JDBC操作数据库

数据库介绍 数据库是一种存储结构&#xff0c;允许使用各种格式输入、处理和检索数据&#xff0c;不必再每次需要数据时重新输入。当前比较流行的数据库主要有MySQL、Oracle、SQL Server等 使用JDBC操作数据库&#xff0c;SQL语句是比不可少的&#xff0c;SQL是一种结构化查询…

安装配置 ZLMediaKit

一、ZLMediaKit 库简介 ZLMediaKit 是一个基于 C11 的高性能运营级流媒体服务框架 官方写的项目特点&#xff1a; 基于 C11 开发&#xff0c;避免使用裸指针&#xff0c;代码稳定可靠&#xff0c;性能优越。 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/Websocket-FLV/GB28181/MP4…

【数据分析之道-Pandas(一)】Series操作

文章目录 专栏导读1、Series简介2、创建Series3、Series索引4、Series切片 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Python领域新星创作者&#xff0c;专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》&#xff0c;本专栏针对大学生、初级数据分析工…

光线追踪 1(基本概念Whitted-Style Ray Tracing)

为什么要光线追踪 光栅化存在什么问题 无法实现软阴影&#xff08;光源不是严格点光源时&#xff09; 无法解决光线反射超过一次的情况 相对来说光照效果的质量低 光线追踪的特点 准确慢&#xff08;相对光栅化&#xff09; 什么是光线追踪 光线的基本假设 光线沿直…

王道计组(23版)5_中央处理器

CPU 功能 指令控制&#xff1a;取指、分析、执行 操作控制&#xff1a;一条指令的功能由若干操作信号组合实现 时间控制、数据加工、中断处理 基本结构 运算器 ALU&#xff1a;算术/逻辑运算 暂存寄存器&#xff1a;暂存从主存读来的数据&#xff0c;透明 ACC&#xff1a;…

【变量的解构赋值】

变量的解构赋值 1 数组的解构2 对象的解构 ES6允许按照一定模式从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这称为解构赋值。 1 数组的解构 <script>// 1.数组的解构const F4 [小沈阳,刘能,赵四,宋小宝];let [xiao,liu,zhao,song] F4;console.log(xi…

算法基础(三):链表知识点及题型讲解

算法基础&#xff08;三&#xff09;&#xff1a;链表知识点及题型讲解 1 链表定义2 Python链表常用操作2.1 创建链表2.2 添加元素2.3 访问元素2.4 搜索元素2.5 更新元素2.6 删除元素2.7 获取链表长度 3 力扣题目训练 一些算法基础知识点和leetcode题解&#xff0c;语言是pytho…

体验 buildah

体验 buildah 什么是 Buildah安装 BuildahBuildah 使用 Dockerfiles参考资料 什么是 Buildah Buildah 是一个便于构建开放容器倡议&#xff08;OCI&#xff09;容器镜像的工具。 Buildah软件包提供了一个命令行工具&#xff0c;可以用来&#xff1a; 创建一个工作容器&#x…

代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II

文章目录 62.不同路径63. 不同路径 II 62.不同路径 题目链接&#xff1a;代码随想录 解题思路&#xff1a; 1.dp(i)(j)&#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xff0c;到(i, j) 有dp(i)(j)条不同的路径 2.确定dp的表达式: dp(i)(j) dp(i-1)(j) …

OpenCV核心运算(二)—图像基本与算术操作

目录 2.1 图像的基本操作目标访问和修改像素值访问图像属性图像ROI分割和合并图像通道为图像制作边框&#xff08;填充&#xff09; 2.2 图像上的算术操作目标图像加法图像混合位操作练习 2.3 性能测量和改进技术目标用OpenCV测量性能OpenCV中的默认优化更多的IPython魔法命令性…

[HBZ分享] 小米手机如何解BL锁

第一步&#xff1a; 进入【设置—>我的设备–>全部参数–>连续疯狂的点MIUI版本那一行】 第二步&#xff1a;进入【更多设置–>开发者模式】&#xff0c;打开USB调试 与 USB安装 第三步&#xff1a;进入【更多设置–>开发者模式】&#xff0c;进入【设别解锁状…

spring eurake中使用IP注册

在开发spring cloud的时候遇到一个很奇葩的问题&#xff0c;就是服务向spring eureka中注册实例的时候使用的是机器名&#xff0c;然后出现localhost、xxx.xx等这样的内容&#xff0c;如下图&#xff1a; eureka.instance.perferIpAddresstrue 我不知道这朋友用的什么spring c…

单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机)

想要更多项目私wo!!! 一、电路设计 51 单片机双轴自动追光系统主要由 STC89C52RC 5516 光敏电阻 ADC0832 ULN2803 步进电机 LCD1602 显示屏组成。 1.通过子电路板的上、下、左、右四个光敏电阻来感受四个方向的光强&#xff0c;自 动寻找光强最强的方向。四个光敏电阻的…

MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别

文章目录 MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别InnoDB存储引擎特点操作示例创建InnoDB表修改表引擎为InnoDB MyISAM存储引擎特点操作示例创建MyISAM表修改表引擎为MyISAM MEMORY存储引擎特点操作示例创建MEMORY表修改表引擎为MEMORY 总结 MySQL存储引擎InnoDB、M…

代码随想录算法训练营第六天|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

先了解一下什么是哈希表 哈希表是根据关键码的值而直接进行访问的数据结构 所以数组就是哈希表 盗个卡哥的图 哈希表中关键码就是数组的索引下标&#xff0c;然后通过下标直接访问数组中的元素&#xff0c;如下图所示&#xff1a; 哈希表能解决的问题&#xff1a; 一般哈…

【LeetCode】987.二叉树的垂序遍历

二叉树遍历系列 144.二叉树的前序遍历94.二叉树的中序遍历145.二叉树的后续遍历102.二叉树的层序遍历107.二叉树的层序遍历II103.二叉树的锯齿形层序遍历&#xff08;之字形遍历&#xff09;199.二叉树的右视图 二叉树的垂序遍历目录 二叉树遍历系列1.问题示例 1示例 2示例 3 …

校招又临近了,怎么在面试中应对设计模式相关问题呢?

夏天开始了&#xff0c;那么夏天结束时的毕业季也不远了。毕业是个伤感、期待而又略带残酷的时节&#xff0c;就像蜜桃无论成熟与否都会在这个时间被采摘&#xff0c;如果毫无准备就踏入社会&#xff0c;就会……马上变成低级社畜。所以说还是要早点为了毕业找工作做点准备&…

Stereo-Detection:YOLO v5与双目测距结合,实现目标的识别和定位测距

简介&#xff1a;Stereo-Detection 是一个传统的SGBM深度测距yolov5目标检测&#xff0c;并部署在Jeston nano的开源教程。它致力于让更多的大四学生毕业&#xff0c;以及让研一学生入门 开源链接&#xff1a;yzfzzz/Stereo-Detection: Conventional SGBM depth ranging yolov…