LeetCode第 319 场周赛题解

news2025/7/18 8:18:13

目录

  • 2469. 温度转换
  • 2470. 最小公倍数为 K 的子数组数目
  • 2471. 逐层排序二叉树所需的最少操作数目
  • 2472. 不重叠回文子字符串的最大数目

2469. 温度转换

在这里插入图片描述
模拟

class Solution {
public:
    vector<double> convertTemperature(double celsius) {
        return {celsius+273.15,celsius*1.8+32};
    }
};

2470. 最小公倍数为 K 的子数组数目

在这里插入图片描述
时间复杂度 n 2 n^2 n2完全足够。
公式:x=x*nums[j]/gcd(x,nums[j]);

class Solution {
public:
    int subarrayLCM(vector<int>& nums, int k) {
        int n=nums.size();
        int res=0;
        for(int i=0;i<n;i++)
        {
            int x=nums[i];
            for(int j=i;j<n;j++)
            {
                x=x*nums[j]/gcd(x,nums[j]);
                if(x==k)res++;
                else if(x>k)break;
            }
        }
        return res;
    }
};

2471. 逐层排序二叉树所需的最少操作数目

在这里插入图片描述
在这里插入图片描述
本题考查置换环
如何构建环?
比如该数组为
[7,6,8,5]
[5,6,7,8]<—排好序
将上下两个点相连,每一个环内是需要交换的,交换次数为环的大小减1
个人感觉并查集比较方便:前置知识:并查集求集合中点的个数

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
#define x first
#define y second
typedef pair<int,int>PII; 
class Solution {
public:
    static const int N=1e5+10;
    int f[N],cnt[N];
    int find(int x)
    {
        if(x!=f[x])f[x]=find(f[x]);
        return f[x];
    }
    void unite(int x,int y)
    {
        int a=find(x),b=find(y);
        if(a!=b)
        {
            cnt[a]+=cnt[b];
            f[b]=a;
        }
    }
    int bfs(TreeNode *root)
    {
        queue<TreeNode*>q;
        q.push(root);
        int res=0;
        while(q.size())
        {
            int sz=q.size();
            vector<int>v;
            for(int i=0;i<sz;i++)
            {
                auto t=q.front();
                q.pop();
                v.push_back(t->val);
                if(t->left)q.push(t->left);
                if(t->right)q.push(t->right);
            }
            vector<PII>p;
            for(auto x:v)p.push_back({0,x});
            sort(v.begin(),v.end());
            for(int i=0;i<v.size();i++)p[i].x=v[i];
            for(auto x:p)unite(x.x,x.y);
            for(auto x:p)
                if(f[x.x]==x.x)
                    res+=cnt[x.x]-1;
        }
        return res;
    }
    int minimumOperations(TreeNode* root) {
        for(int i=0;i<N;i++)f[i]=i,cnt[i]=1;
        return bfs(root);
    }
};

2472. 不重叠回文子字符串的最大数目

在这里插入图片描述
字符串哈希便与o(1)查看该子串是否为回文串,贪心枚举一下最多有多少个区间即可。

const int N=2010,base=131;
typedef unsigned long long ull;
typedef pair<int,int>PII;
#define x first
#define y second
class Solution {
public:
    ull p[N],h1[N],h2[N];
    ull get1(int l,int r)
    {
        return h1[r]-h1[l-1]*p[r-l+1];
    }
    ull get2(int l,int r)
    {
        return h2[r]-h2[l-1]*p[r-l+1];
    }
    int maxPalindromes(string s, int k) {
        int n=s.size();
        vector<PII>v;
        string s1=s;
        reverse(s.begin(),s.end());
        string s2=s;
        s1=" "+s1,s2=" "+s2;
        p[0]=1;
        for(int i=1;i<=n;i++)
        {
            p[i]=p[i-1]*base;
            h1[i]=h1[i-1]*base+s1[i];
        }
        for(int i=1;i<=n;i++)
            h2[i]=h2[i-1]*base+s2[i];
        for(int len=k;len<=n;len++)
        {
            for(int l=1;l+len-1<=n;l++)
            {
                int r=l+len-1;
                if(get1(l,r)==get2(n-r+1,n-l+1))v.push_back({l,r});
            }
        }
        sort(v.begin(),v.end(),[&](PII a,PII b){
            return a.y<b.y;
        });
        int res=0;
        int ed=-2e9;
        for(int i=0;i<v.size();i++)
        {
            if(ed<v[i].x)
            {
                res++;
                ed=v[i].y;
            }
        }
        return res;
    }
};

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

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

相关文章

前端面试中小型公司都考些什么

什么是物理像素&#xff0c;逻辑像素和像素密度&#xff0c;为什么在移动端开发时需要用到3x, 2x这种图片&#xff1f; 以 iPhone XS 为例&#xff0c;当写 CSS 代码时&#xff0c;针对于单位 px&#xff0c;其宽度为 414px & 896px&#xff0c;也就是说当赋予一个 DIV元素…

Ubuntu20.04 中已经安装 Pytorch 但 Import 报错 - 解决记录

01 问题描述 笔者使用的是 Ubuntu 20.04.3 LTS&#xff0c;在使用 PyTorch 训练模型的时候&#xff0c;torch 模块引用失败&#xff0c;报错信息是 OSError: /home/wang/.local/lib/python3.8/site-packages/torch/lib/../../nvidia/cublas/lib/libcublas.so.11: undefined s…

C++对象和类概述

11 对象和类 11.1 过程式和面向对象编程 面向过程编程&#xff1a;先考虑函数&#xff0c;然后再细化到数据 面向对象编程&#xff1a;对象&#xff08;数据函数&#xff09; 11.2 抽象和类 在计算中&#xff0c;抽象是根据与用户的接口来表示信息的关键步骤。 11.2.1 什…

QT默认自带mscv2017 2019 ,配置vs2022

试验QT版本&#xff1a;5.14.2 所需文件&#xff1a; QT安装程序--qt-opensource-windows-x86-5.14.2.exe具体地址是&#xff1a;Index of /archive/qthttps://download.qt.io/archive/qt/Microsoft 生成工具 2022 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具win…

Cholesterol胆固醇参数说明及相关研究

Cholesterol胆固醇是哺乳动物细胞中产生的一种主要甾醇&#xff0c;是细胞存活和增殖所必需的。它是哺乳动物细胞膜的一种成分&#xff0c;与膜磷脂、鞘脂和蛋白质相互作用&#xff0c;影响它们的行为。它也是各种基于脂质的药物递送&#xff08;LBDD&#xff09;系统的组成部分…

[oeasy]python0015_十六进制_hexadecimal_字节形态_hex函数

十六进制(hexadecimal) 回忆上次内容 上次数制可以转化 bin(n)可以把数字转化为 ​​2进制​ binary接收一个整数(int)得到一个二进制数形式的字符串数字在计算机中是用二进制存储的 但是展示给我们的时候用的是十进制也就是0-9这10个字符的形式都说字节是计算机存储的最小单…

基于微信小程序的自习室预约系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mav…

Me-Tetrazine-DBCO,1802908-04-8,ICG-Tetrazine四嗪类试剂知识分享

Me-Tetrazine-DBCO&#xff0c;Methyltetrazine-PEG4-azide&#xff0c;ICG-Tetrazine这几种试剂都含有四嗪&#xff0c;或者甲基四嗪&#xff0c;其主要的性能特点有哪些&#xff1f;西安凯新生物是国内业PEG供应商&#xff0c;其中包括各种规格的点击试剂&#xff0c;&#x…

nvm (node 版本管理器)

ps: 如果已经安装node&#xff0c;或者nvm&#xff0c;先卸载&#xff0c;再执行下面操作。 1. 下载nvm nvm github 下载后以管理员身份运行 setup.exe 安装就根据步骤点下一步就行了 2. 安装node nvm基础操作 使用 nvm install node版本号&#xff0c;但是这里有时候会报…

[附源码]java毕业设计基于的城镇住房公积金管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Vue项目实战

Vue项目实战 1、项目介绍 1.1、对象 有Vue2、Vue3组合api基础知识&#xff0c;TypeScript基础知识1.2、涉及技术 CSS3 TypeScript Vue3.2 Vuex4.x Vue Router4.x Vite2.x Element-Plus1.3、技能 掌握Vue3.2语法糖的使用掌握Vue3中组合api的使用掌握组件中业务逻辑抽离的方…

第七章 Java编程-多线程

线程几乎在每个编程语言中都有&#xff0c;它其实是操作系统的概念&#xff0c;编程语言是运行在操作系统上的

RK3568平台开发系列讲解(图像篇)BMP图像处理

🚀返回专栏总目录 文章目录 一、BMP文件格式解析1.1、位图文件头(bitmap-file header)1.2、位图信息头(bitmap-information header)二、LCD上显示代码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢我们今天来讲解BMP文件格式的解析。 一、BMP文件格式解析 BMP是一…

发那科机床联网

一、设备信息确认 1、确认型号 数控面板拍照确认&#xff1a; 此系统为&#xff1a;0I-TD 注&#xff1a;凡是系统中带i的&#xff0c;基本上都有网络通讯和采集功能。如果系统中带有mate字样&#xff0c;并且比较老可能不含网口。 2、确认通讯接口 发那科的通讯接口有两种…

【SpringBoot项目】SpringBoot项目-瑞吉外卖【day02】员工管理业务开发

文章目录前言员工管理业务开发完善登录功能问题分析代码实现功能测试新增员工需求分析数据模型代码开发功能测试统一处理异常员工信息分页查询需求分析代码开发功能测试启用/禁用员工需求分析代码实现测试编辑员工信息需求分析代码实现功能测试总结&#x1f315;博客x主页&…

VS2022 性能提升:更快的 C++ 代码索引

基于 Visual Studio 2022 17.3 版本的性能提升&#xff0c;我们在新的 17.4 版本中添加了更多的小优化&#xff0c;且听我慢慢道来。 不论你是一个工作在大型代码库下的游戏开发者&#xff0c;或者你在解决方案中有非常多的 C 工程&#xff0c;在 Visual Studio 2022 17.4 中&…

【附源码】计算机毕业设计JAVA家装建材网

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

浅析DNS劫持及应对方案

DNS是网络连接中的重要一环&#xff0c;它与路由系统共同组成互联网上的寻址系统&#xff0c;如果DNS遭遇故障&#xff0c;“导航系统”失效&#xff0c;网络连接就会出现无法触达或到达错误地址的情况。由于的DNS重要作用及天生脆弱性&#xff0c;导致DNS自诞生之日起&#xf…

React源码解读之任务调度

React 设计体系如人类社会一般&#xff0c;拨动时间轮盘的那一刻&#xff0c;你便成了穿梭在轮片中的一粒细沙&#xff0c;角逐过程处处都需要亮出你的属性&#xff0c;你重要吗&#xff1f;你无可替代吗&#xff1f;你有特殊权限吗&#xff1f;没有&#xff0c;那不好意思&…

Autosar模块介绍:AutosarOS(5)

上一篇 | 返回主目录 | 下一篇 AutosarOS&#xff1a;错误处理、跟踪与调试&#xff08;5&#xff09;1 钩子例程2 错误处理&#xff08;ErrorHook&#xff09;3 系统启动&#xff08;StartupHook&#xff09;4 系统关闭&#xff08;ShutdownHook&#xff09;5 系统保护&#x…