Leetcode - 周赛404

news2025/2/23 6:11:50

目录

一,3200. 三角形的最大高度

二,3201. 找出有效子序列的最大长度 I

三,3202. 找出有效子序列的最大长度 II

四,3203. 合并两棵树后的最小直径


一,3200. 三角形的最大高度

本题直接模拟,分别计算一下红蓝红和蓝红蓝的最大高度。

代码如下:

class Solution {
    public int maxHeightOfTriangle(int red, int blue) {
        return Math.max(make(red, blue), make(blue, red));
    }
    int make(int a, int b){
        int i = 1;
        while(true){
            if(i%2==1){
                a -= i;
            }else{
                b -= i;
            }
            if(a < 0 || b < 0) return i-1;
            i++;
        }
    }
}

二,3201. 找出有效子序列的最大长度 I

本题讲个简单的做法,(a+b)%2 = (a%2 + b%2)%2,就是看相邻的两个数是奇奇,偶偶,还是奇偶,所以可以分别求这三种情况,即奇数的个数,偶数的个数,以及奇偶相间的个数(这里直接贪心,不用分奇偶奇还是偶奇偶,直接看第一个数是奇数还是偶数就行),代码如下:

class Solution {
    public int maximumLength(int[] nums) {
        int sum = 0, k = -1, cnt = 1;
        for(int i=0; i<nums.length; i++){
            nums[i] %= 2;
            if(k == -1) k = nums[i];
            else{
                if((k^nums[i])==1){
                    k ^= 1;
                    cnt++;
                }
            }
            sum += nums[i];
        }
        return Math.max(Math.max(sum, nums.length-sum), cnt);
    }
}

三,3202. 找出有效子序列的最大长度 II

本题无法使用dfs记忆化来做,会超时,那么我们如何来写这道题呢?有这样一个性质,假设(a + b)%k = (b + c)%k,可以推出 (a + b - (b + c))%k = 0,(a - c)%k = 0,即a%k = c%k。结合本题题意,如果将nums中的所有值 % k,可以得出子序列中奇数项都相同,偶数项也都相同。

定义f[x][y]:以x,y结尾的最长子序列(这里的x,y都是nums[i]%k)。由上述结论可以得出下面的递推公式 f[x][y] = f[y][x] + 1,代码如下:

class Solution {
    public int maximumLength(int[] nums, int k) {
        int ans = 1;
        int[][] f = new int[k][k];
        for(int x : nums){
            x %= k;
            for(int y=0; y<k; y++){
                f[y][x] = f[x][y] + 1;
                ans = Math.max(f[y][x], ans);
            }
        }
        return ans;
    }
}

四,3203. 合并两棵树后的最小直径

写本题需要推出一个结论,就是该题的最长路径长度一定是e1的直径,e2的直径,e1的直径/2 + e2的直径/2 + 1 (即两个树直径的中点相连)这三者的最大值。

可以由反证法证明为啥是两个树直径的中点相连,存在两种情况:

  • 如果存在一个点不在e1或e2的直径上,那么以它相连得到的最长直径,一定要先走到直径上,所以它一定比两个树直径的中点相连多走一段距离
  • 如果存在一个点在e1或e2的直径上但是不是中点,显而易见,以它相连得到的最长直径一定要大于两个树直径的中点相连

得出结论后,我们要做的就是求出两个图的直径,代码如下:

class Solution {
    public int minimumDiameterAfterMerge(int[][] e1, int[][] e2) {
        int s1 = inital(e1);
        int s2 = inital(e2);
        return Math.max(Math.max(s1, s2), (s1+1)/2 + (s2+1)/2 + 1);
    }
    int res;
    int inital(int[][] edge){
        int n = edge.length;
        List<Integer>[] g = new ArrayList[n+1];
        Arrays.setAll(g, e->new ArrayList<>());
        for(int[] e : edge){
            int x = e[0], y = e[1];
            g[x].add(y);
            g[y].add(x);
        }
        res = 0;
        dfs(0, -1, g);
        return res;
    }
    //求直径
    int dfs(int x, int fa, List<Integer>[] g){
        int maxLen = 0;
        for(int y : g[x]){
            if(y != fa){
                int t = dfs(y, x, g)+1;
                res = Math.max(res, maxLen + t);
                maxLen = Math.max(maxLen, t);
            }
        }
        return maxLen;
    }
}

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

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

相关文章

KVM使用命令行添加新磁盘(注:支持热插拔)

1、使用qemu-img创建格式为qcow2的磁盘 [rootkvm ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/test-disk.qcow2 15G 2、显示虚拟机硬盘列表&#xff0c;查看未使用的target [rootkvm ~]# virsh domblklist kvm-client 3、添加硬盘到kvm-client虚拟机中 [rootkvm…

Matlab2023a保姆级安装教程,附下载安装包资料

安装包放在前面&#xff01; 「MATLAB安装包 获取链接&#xff1a;https://pan.quark.cn/s/d8abf7394b3e 温馨提示:路径中不要有中文&#xff01;&#xff01; 1、下载全部的安装包&#xff0c;然后解压得到安装文件 2、解压之后可以看到包含Matlab R2023a安装光驱文件及Cr…

【Linux进阶】文件系统5——ext2文件系统(inode)

1.再谈inode (1) 理解inode&#xff0c;要从文件储存说起。 文件储存在硬盘上&#xff0c;硬盘的最小存储单位叫做"扇区"&#xff08;Sector&#xff09;。每个扇区储存512字节&#xff08;相当于0.5KB&#xff09;。操作系统读取硬盘的时候&#xff0c;不会一个个…

低负载高效率(轻载高效)的BUCK是如何实现的?

-----本文简介----- 主要内容包括&#xff1a; 轻载高效BUCK是何原理&#xff1f; ----- 正文 ----- 先赞↓后看&#xff0c;养成习惯&#xff01; 一、 DC-DC的控制模式与效率 1. PWM模式 如下图是PWM控制模式的DC-DC&#xff0c;PWM(Pulse Width Modulation)&#x…

昇思25天学习打卡营第11天|MindSpore 助力下的 GPT2:数据集加载处理及模型全攻略

目录 环境配置 数据集下载和获取 数据集拆分 处理数据集 模型构建 ​​​​​​​模型训练 ​​​​​​​模型推理 环境配置 “%%capture captured_output”这一行指令通常旨在捕获后续整个代码块所产生的输出结果。首先&#xff0c;将已预装的 mindspore 库予以卸载。随后&a…

奇迹MU 骷髅战士在哪

BOSS分布图介绍 我为大家带来各地区怪物分布图。在游戏前期&#xff0c;很多玩家可能会不知道该去哪里寻找怪物&#xff0c;也不知道哪些怪物值得打。如果选择了太强的怪物&#xff0c;弱小的玩家可能会无法抵御攻击。如果选择了低等级的boss&#xff0c;收益可能并不理想。所…

创建一个不带框架的javaweb工程

点击新建 选择Maven&#xff0c;然后在Archetype里面选择 webapp选项&#xff08;注意这里需要配置好Maven的环境 如果没配好Maven引入依赖的时候会引不进来&#xff09; 如果Maven配置之后就会显示配置成功 然后我们要配置tomacat的依赖 jde选择默认 然后点击部署 选择工件&a…

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的方式增长。第1周少了1个朋友......

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的 方式增长。第1周少了1个朋友&#xff0c;剩下的朋友数量翻倍&#xff1b;第2周少了2个朋友&#xff0c;剩下的朋友数量 翻倍。一般而言&#xff0c;第N周少了N个朋友&#xff0c;剩下的朋友数量翻倍…

适合宠物饮水机的光电传感器有哪些

如今&#xff0c;随着越来越多的人选择养宠物&#xff0c;宠物饮水机作为一种便捷的饮水解决方案日益受到欢迎。为了确保宠物随时能够获得足够的水源&#xff0c;宠物饮水机通常配备了先进的光电液位传感器技术。 光电液位传感器在宠物饮水机中起着关键作用&#xff0c;主要用…

Flutter-实现双向PK进度条

如何实现一个双向PK进度条 在Flutter应用中&#xff0c;进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值&#xff0c;如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条&#xff0c;并支持竖直和斜角两种过渡效果。 1. 需求 我…

UDP协议:独特之处及其在网络通信中的应用

在网络通信领域&#xff0c;UDP&#xff08;用户数据报协议&#xff0c;User Datagram Protocol&#xff09;是一种广泛使用的传输层协议。与TCP&#xff08;传输控制协议&#xff0c;Transmission Control Protocol&#xff09;相比&#xff0c;UDP具有其独特的特点和适用场景…

ESP32——物联网小项目汇总

商品级ESP32智能手表 [文章链接] 用ESP32&#xff0c;做了个siri&#xff1f;&#xff01;开源了&#xff01; [文章链接]

2024年6月后2周重要的大语言模型论文总结:LLM进展、微调、推理和对齐

本文总结了2024年6月后两周发表的一些最重要的大语言模型论文。这些论文涵盖了塑造下一代语言模型的各种主题&#xff0c;从模型优化和缩放到推理、基准测试和增强性能。 LLM进展与基准 1、 BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Com…

数字化精益生产系统--APS 排程管理系统

APS&#xff08;Advanced Planning and Scheduling&#xff09;排程管理系统&#xff0c;即高级生产计划与排程系统&#xff0c;是一种高度智能化的计划和排程系统。它通过整合各种生产和供应链数据&#xff0c;运用先进的算法和数据模型&#xff0c;根据各种约束条件&#xff…

Vue-Router4.0 报“Cannot read property ‘forEach‘ of undefined”

Vue-Router4.0在创建路由时 报“Cannot read property ‘forEach‘ of undefined” 解决办法 将路由规则名称更改为routes&#xff0c;否则报错 import { createWebHashHistory, createRouter } from vue-router; // 创建路由规定 const routes [{path: /login,name: login,co…

部署LVS+keepalived做网站的高可用,高负载。

LVSkeepalived keepalived背景 针对LVS的辅助工具&#xff0c;主要提供故障切换与健康检查。 工作场景&#xff1a;作为调度器的双机热备&#xff0c;以及节点服务器的健康检查以及故障切换&#xff08;删除条目&#xff09;。 借鉴了VRRP协议来实现高可用。 keepalived部署…

商贸物流大脑:大模型+数据要素赋能智慧物流数据平台

项目背景与意义 物流行业快速发展&#xff0c;数据量急剧增加&#xff0c;随着电子商务、智能制造等领域的快速发展&#xff0c;物流行业面领着前所未有的挑战和机遇&#xff0c;如效率低下、资源配置不均、信息不透明等问题。随着全球化和电子商务的快速发展&#xff0c;数据…

MAX98357、MAX98357A、MAX98357B小巧、低成本、PCM D类IIS放大器,具有AB类性能中文说明规格书

前言&#xff1a; MAX98357A支持标准I2S数据&#xff0c;MAX98357B支持左对齐数字音频数据。两个版本均支持8通道TDM音频数据。 IIS数字功放MAX98357开发板/评估系统 MAX98357 WLP-9(1.347x1.437mm)封装的外观和丝印AKM MAX98357 TQFN-16-EP(3x3mm)封装的外观和丝印AKK 引脚说…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(7)

Hi~ (o^^o)♪, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块&#xff0c;帮你一周内快速学会语音模块的使用方式&#xff0c;打造一个可用于智能家居、物联网领域的语音助…

Towards Accurate and Robust Architectures via Neural Architecture Search

基于网络架构搜索的准确性与鲁棒性结构研究 论文链接&#xff1a;https://arxiv.org/abs/2405.05502 项目链接&#xff1a;未开源 Abstract 为了保护深度神经网络免受对抗性攻击&#xff0c;对抗性训练因其有效性而受到越来越多的关注。然而&#xff0c;对抗训练的准确性和鲁…