[LeetCode周赛复盘] 第 345 场周赛20230514

news2024/11/28 22:32:12

[LeetCode周赛复盘] 第 345 场周赛20230514

    • 一、本周周赛总结
    • 6430. 找出转圈游戏输家
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 6431. 相邻值的按位异或
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 6433. 矩阵中移动的最大次数
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 6432. 统计完全连通分量的数量
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 参考链接

一、本周周赛总结

  • 干T2写wa了
  • T1 模拟。
  • T2 递推模拟。
  • T3 DP或bfs。
  • T4 图论并查集。
    在这里插入图片描述

6430. 找出转圈游戏输家

6430. 找出转圈游戏输家

1. 题目描述

在这里插入图片描述

2. 思路分析

按题意模拟即可。

  • 由于每个人只会接球一次,复杂度是n。

3. 代码实现

class Solution:
    def circularGameLosers(self, n: int, k: int) -> List[int]:
        vis = [0] * n
        x = 0
        cnt = 1
        while True:
            if vis[x]:break
            vis[x] = 1 
            x = (x+k*cnt)%n
            cnt += 1
        return [x+1 for x,v in enumerate(vis) if not v]

6431. 相邻值的按位异或

6431. 相邻值的按位异或

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 朴素思路是把第一位设置成1或0直接模拟到最后一位看看是否合法。
  • 写完发现其实就是把所有位异或起来再异或s是否等于s。
  • 那只有0异或别人是保持。

3. 代码实现

class Solution:        
    
    def doesValidArrayExist(self, derived: list[int]) -> bool:
        def check(s):
            t = s 
            for v in derived:
                t^=v
            return t == s

        return check(0) or check(1)
class Solution:            
    def doesValidArrayExist(self, derived: list[int]) -> bool:    
        return reduce(xor,derived)==0

6433. 矩阵中移动的最大次数

6433. 矩阵中移动的最大次数

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 转移时定向的,可以直接向右DP。

3. 代码实现

class Solution:
    def maxMoves(self, g: List[List[int]]) -> int:
        m,n = len(g),len(g[0])
        f = [[0]+[-inf]*(n-1) for _ in range(m)]
        ans = 0
        for j in range(1,n):
            for i in range(m):
                if g[i][j] > g[i][j-1]:
                    f[i][j] = max(f[i][j],f[i][j-1]+1)
                if i and g[i][j] > g[i-1][j-1]:
                    f[i][j] = max(f[i][j],f[i-1][j-1]+1)
                if i < m-1 and g[i][j] > g[i+1][j-1]:
                    f[i][j] = max(f[i][j],f[i+1][j-1]+1)
                ans = max(ans,f[i][j])
        return ans 

6432. 统计完全连通分量的数量

6432. 统计完全连通分量的数量

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 图是裂的,只好手画。好在题意说的比较明确。
  • 求连通分量直接并查集即可,然后看每个分量的边数m和点数n的关系,对于完全连通分量,有:
    • m=n*(n-1)/2
  • 前阵子正好写了维护边数的并查集。

3. 代码实现

class DSU:
    def __init__(self, n):
        self.fathers = list(range(n))
        self.size = [1] * n  # 本家族size
        self.edge_size = [0] * n  # 本家族边数(带自环/重边)
        self.n = n
        self.setCount = n  # 共几个家族

    def find_fa(self, x):
        fs = self.fathers
        t = x
        while fs[x] != x:
            x = fs[x]
        while t != x:
            fs[t], t = x, fs[t]
        return x

    def union(self, x: int, y: int) -> bool:
        x = self.find_fa(x)
        y = self.find_fa(y)

        if x == y:
            self.edge_size[y] += 1
            return False
        # if self.size[x] > self.size[y]:  # 注意如果要定向合并x->y,需要干掉这个;实际上上边改成find_fa后,按轶合并没必要了,所以可以常关
        #     x, y = y, x
        self.fathers[x] = y
        self.size[y] += self.size[x]
        self.edge_size[y] += 1 + self.edge_size[x]
        self.setCount -= 1
        return True
class Solution:
    def countCompleteComponents(self, n: int, edges: List[List[int]]) -> int:
        dsu = DSU(n)
        for u,v in edges:
            dsu.union(u,v)
        ans = 0
        
        for i in range(n):
            if dsu.find_fa(i) == i :
                p = dsu.size[i]
                m = dsu.edge_size[i]
                if p*(p-1)//2 == m:
                    ans +=1
        return ans         

参考链接

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

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

相关文章

多核与多处理器的区别

一、定义 多核&#xff1a;单块CPU上面能处理数据的芯片组的数量&#xff0c;比如&#xff0c;双核就是包括2个相对独立的CPU核心单元组&#xff0c;四核就包含4个相对独立的CPU核心单元组。 多处理器&#xff1a;主板上实际插入的cpu数量&#xff0c;一般有两个或者多个处理…

AutoSar之DaVinci开发环境

文章目录 前言一、AutoSar架构简介二、开发环境组成1.DaVinci Developer2.DaVinci Configurator3.SIP 总结 前言 作为初学者&#xff0c;接触AutoSar的开发&#xff0c;除了需要掌握基本的AutoSar架构知识外&#xff0c;还需要熟悉设计和配置AutoSar的工具链。接下来我会以Vec…

ChatGPT在小红书文案实践

今天聊一聊ChatGPT在小红书这个实际应用场景的案例。ChatGPT 以较低的门槛提高了使用者创作水平&#xff0c;有较高的下限&#xff0c;但如何创造更高质量的内容就要依靠使用者在领域的能力和AI使用技巧&#xff0c;作者无任何小红书推广和文案写作经验&#xff0c;文章内容来自…

【MySQL】C语言连接数据库

在使用数据库的时候&#xff0c;我们是操作客户端方的&#xff0c;向服务器请求数据。MySQL的端口号-3306 连接mysql需要头文件&#xff1a;#include<mysql/mysql.h> 基础连接步骤&#xff1a; 1.创建连接句柄 MYSQL mysql_con;//连接句柄 2.初始化连接句柄mysql_i…

LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令

LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令 默认情况下&#xff0c;网络流旨在最大化吞吐量&#xff0c;但可以轻松实现它们以最大化发送命令或消息的低延迟。 为本部分提供LabVIEW示例代码 命令发送器体系结构 命令发送器是CompactRIO控制器必须响应的任何命…

如何构建“Buy Me a Coffee”DeFi dApp

&#x1f978; 本教程来自官网&#xff1a;https://docs.alchemy.com/docs。对原文部分内容进行了修改。教程中所有实例经过本人实践&#xff0c;代码可见&#xff1a;https://github.com/ChuXiaoYi/web3Study 区块链技术令人惊叹&#xff0c;因为它使我们能够使用代码和软件编…

【Linux初阶】进程地址空间 | CUP与可执行程序的交互原理

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;计算机空间初识&#xff08;子进程变量修改实验&#xff09;&#xff0c;感性理解进程虚拟地址空间&#xff0…

Web自动化测试工具大对决:细致比较Selenium、Protractor和Cypress

目录 前言&#xff1a; Selenium Protractor Cypress 结论 Web自动化测试步骤结构图&#xff1a; 前言&#xff1a; 随着Web应用程序的广泛使用&#xff0c;Web自动化测试工具的需求也越来越高。Web自动化测试工具可以模拟用户在Web浏览器中的行为&#xff0c;并且可以快…

NICE-SLAM学习

NICE-SLAM简介&#xff1a; 是浙大和ETH提出的一种神经隐式SLAM方法主要创新点在于解决了基于传统nerf的方案如imap无法应用在较大场景的问题。 关于该工程的前身和当前领域的主要研究现状见&#xff1a;&#xff08;知乎&#xff1a;秦通&#xff09;基于神经辐射场的&#…

接口自动化测试-Pytest核心固件Fixture详解以及应用实战

目录 前言&#xff1a; 一、Fixture概述 二、Fixture分类 在Pytest中&#xff0c;Fixture可以分为4类&#xff1a; 三、Fixture使用 下面结合实例说明如何使用Fixture。 3.1 session级别的Fixture 3.2 module级别的Fixture 3.3 function级别的Fixture 3.4 class级别的F…

2023.5.13前端设计

SpringbootVue架构设计&#xff08;一&#xff09; 项目中的文件来自B站视频&#xff08;程序员青戈&#xff09; https://www.bilibili.com/video/BV1U44y1W77D 前端设计 assets 文件夹通常用于存放静态资源文件&#xff0c;例如图像、CSS、字体等。components 文件夹通常用…

2023.5.14数据库设计

SpringbootVue架构设计&#xff08;二&#xff09; 项目中的文件来自B站视频&#xff08;程序员青戈&#xff09; https://www.bilibili.com/video/BV1U44y1W77D 数据库设计 1、article 在关系型数据库中&#xff0c;text类型和varchar类型都是用来存储字符串的数据类型。它…

【ShaderToy中图形效果转译到UnityShaderlab案例分享_Flame】

ShaderToy内的源码与效果图如下: float noise(vec3 p) //Thx to Las^Mercury {vec3 i = floor(p);vec4 a = dot(i

电动力学专题:电磁波传播时的色散效应

本文中假定波动方程的性质足够好&#xff0c;不要杠&#xff0c;杠你就输了 数学分析中的问题和XX 波动方程&#xff1a;\frac{\partial^2 u}{\partial t^2} - a^2 \frac{\partial^2 u}{\partial x^2} 0......(1) 波的色散 波动方程描写的是以恒定速度a传播的非衰减波。方程&…

【电厂用 交流三相电流继电器HJL-F93/AY 导轨安装 JOSEF约瑟供应 】

名称&#xff1a;交流三相电流继电器&#xff0c;品牌&#xff1a;JOSEF约瑟&#xff0c;型号&#xff1a;HJL-F93/AY&#xff0c;功率消耗&#xff1a;≤5W&#xff0c;触点容量&#xff1a;250V/5A&#xff0c;额定电压&#xff1a;58、100、110、220V 上海约瑟供应 交流三相…

第十四届蓝桥杯青少组选拔赛Python真题 (2022年10月30日),包含答案

目录 一、选择题 二、编程题 第十四届蓝桥杯青少组选拔赛Python真题 (2022年10月30日) 一、选择题 第 1 题 单选题 执行print (5%3) 语句后,输出的结果是 ( ) 答案:C 第2题单选题 以下选项中,哪一个是乘法运算符?() 答案:C 第3题 单选题 已知x-3,求x//2+x”2的…

PCIE结构拓扑(RC、EP、SWITCH)介绍

1、PCIE典型结构拓扑 (1)个人理解&#xff1a;红色方框部分一般是在芯片内部集成&#xff0c;对外可提供多个PCIE接口&#xff1b; (2)芯片提供的PCIE接口&#xff0c;可以接EP设备、PCI桥、Switch设备&#xff1b; 2、RC&#xff08;Root Complex&#xff09; 个人理解&#x…

【一文吃透归并排序】基本归并·原地归并·自然归并 C++

目录 1 引入情境基本归并排序实现 C 2 原地归并排序2-1 死板的解法2-2 原地工作区2-3 链表归并排序 3 自底向上归并排序4 两路自然归并排序4-1 形式化描述4-2 代码实现 1 引入情境 归并思想&#xff1a;假设有两队小孩&#xff0c;都是从矮到高排序&#xff0c;现在通过一扇门后…

微服务#3 Docker常用命令

Docker 一.初识docker Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包&#xff0c;形成可移植镜像Docker应用运行在容器中&#xff0c;使用沙箱机制&#xff0c;相互隔离 Docker如何解决开…

在树莓派上搭建WordPress博客网站,并内网穿透发布到公网

✨个人主页&#xff1a;bit me&#x1f447; 目 录 &#x1f43e;概述&#x1f490;安装 PHP&#x1f338;安装MySQL数据库&#x1f337;安装 Wordpress&#x1f340;设置您的 WordPress 数据库&#x1f339;设置 MySQL/MariaDB&#x1f33b;创建 WordPress 数据库 &#x1f33…