力扣404周赛 T1/T2/T3 枚举/动态规划/数组/模拟

  • 博客主页:誓则盟约
  • 系列专栏:IT竞赛 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍ 

3200.三角形的最大高度【简单

题目:

给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行有 1 个球,第 2 行有 2 个球,第 3 行有 3 个球,依此类推。

每一行的球必须是 相同 颜色,且相邻行的颜色必须 不同

返回可以实现的三角形的 最大 高度。

示例 1:

输入: red = 2, blue = 4

输出: 3

解释:

上图显示了唯一可能的排列方式。

示例 2:

输入: red = 2, blue = 1

输出: 2

解释:

 

上图显示了唯一可能的排列方式。

示例 3:

输入: red = 1, blue = 1

输出: 1

示例 4:

输入: red = 10, blue = 1

输出: 2

解释:

 

上图显示了唯一可能的排列方式。

提示:

  • 1 <= red, blue <= 100

分析问题:

这里需要分情况讨论:

  • 奇排是蓝球:那么蓝色第一层初始值为1,往下每层个数依次+2,需要蓝色球的个数每次都加本层的个数。模拟过程,求出蓝色球的数量一共够放多少层。同样的办法求出红色球能放的总层数。两者去min值*2就是初定的层数,但是需要注意的是,这里当蓝色球层数大于红色球层数时,总层数是需要+1的,因为蓝球开始又以蓝球结束。总层数+1即为结果
  • 奇排是红球:同样的道理,设红球的初始值为1,求出层数即可。

        最后返回二者的max值即为答案。

        这道题容易产生一种错误的思路:数量多的球就应该放第一排,或者数量少的球就应该放第一排。这种思路是错的,可以自行验证。

代码实现:

class Solution:def maxHeightOfTriangle(self, red: int, blue: int) -> int:b,r=1,0h1,h2=1,0s1,s2=1,0while s1+h1+2<=blue:h1+=2b+=1s1+=h1while s2+h2+2<=red:h2+=2r+=1s2+=h2a=min(b,r)*2if b-r>=1: a+=1r,b=1,0h1,h2=1,0s1,s2=1,0while s1+h1+2<=red:h1+=2r+=1s1+=h1while s2+(h2+2)<=blue:h2+=2b+=1s2+=h2k=min(b,r)*2if r-b>=1: k+=1return max(a,k)


 

3201.找出有效子序列的最大长度I【中等】 

题目: 

给你一个整数数组 nums

nums 的子序列 sub 的长度为 x ,如果其满足以下条件,则称其为 有效子序列

  • (sub[0] + sub[1]) % 2 == (sub[1] + sub[2]) % 2 == ... == (sub[x - 2] + sub[x - 1]) % 2

返回 nums 的 最长的有效子序列 的长度。

一个 子序列 指的是从原数组中删除一些元素(也可以不删除任何元素),剩余元素保持原来顺序组成的新数组。

示例 1:

输入: nums = [1,2,3,4]

输出: 4

解释:

最长的有效子序列是 [1, 2, 3, 4]

示例 2:

输入: nums = [1,2,1,1,2,1,2]

输出: 6

解释:

最长的有效子序列是 [1, 2, 1, 2, 1, 2]

示例 3:

输入: nums = [1,3]

输出: 2

解释:

最长的有效子序列是 [1, 3]

提示:

  • 2 <= nums.length <= 2 * 10**5
  • 1 <= nums[i] <= 10**7

分析问题:

         这个题是下面3202题的一种简单的情况,直接看下面一题的题解。

代码实现:

class Solution:def maximumLength(self, nums: List[int]) -> int:k=2f = [[0]*k for i in range(k)]for x in nums:x%=kfor y in range(k):f[y][x]=f[x][y]+1return max(map(max,f))

 

3202.找出有效子序列的最大长度II【中等】 

题目:

给你一个整数数组 nums 和一个  整数 k 。

nums 的一个 

子序列

 sub 的长度为 x ,如果其满足以下条件,则称其为 有效子序列 :

  • (sub[0] + sub[1]) % k == (sub[1] + sub[2]) % k == ... == (sub[x - 2] + sub[x - 1]) % k

返回 nums 的 最长有效子序列 的长度。

示例 1:

输入:nums = [1,2,3,4,5], k = 2

输出:5

解释:

最长有效子序列是 [1, 2, 3, 4, 5] 。

示例 2:

输入:nums = [1,4,2,3,1,4], k = 3

输出:4

解释:

最长有效子序列是 [1, 4, 1, 4] 。

提示:

  • 2 <= nums.length <= 10**3
  • 1 <= nums[i] <= 10**7
  • 1 <= k <= 10**3

分析问题:

        这里的T3和T2是一个道理,只不过这里的k值可以是任意一个值。分析问题,看透问题的本质。其实这道题给的数组的原本的值并没用,我们需要的是他们各自对k取模之后的值,因为我们要比较的是他们的余数[0,k-1];

        对他们各自取模后,可以发现有效子序列的前两个值和后面第三个第四个值就是一个以2为周期的长度为2的数组。也就是说整个有效子序列里面奇数项是同一个数,偶数项是同一个数。奇数项还有可能等于偶数项。

        那么知道了这一点,我们用x遍历原数组nums,用y遍历0-k-1就可以可以得到一个递推关系式:f[y][x]=f[x][y]+1,因为以 3 2 结尾的话前面一个数一定是2,那么意思就是说 3 前面是以2 3 结尾的。所以f[3][2]=f[2][3]+1。

代码实现:

class Solution:def maximumLength(self, nums: List[int],k:int) -> int:f = [[0]*k for i in range(k)]for x in nums:x%=kfor y in range(k):f[y][x]=f[x][y]+1return max(map(max,f))


 

总结:

T3代码详解:
  • 创建了一个二维列表 f ,大小为 k x k ,并初始化为全 0 。
  • 遍历 nums 列表中的每个元素 x ,将其对 k 取模的结果作为新的 x 。
  • 然后遍历 k 个值作为 y ,将 f[y][x] 的值设置为 f[x][y] + 1 。
  • 最后,使用 max(map(max, f)) 找出 f 中所有子列表中的最大值中的最大值,并将其作为结果返回。

考点:

  • 对列表的操作和遍历。
  • 二维列表的创建和使用。
  • map() 函数和 max() 函数的应用。

收获

  • 加深了对列表操作和遍历的理解,包括如何创建和修改二维列表。
  • 熟悉了 map() 函数和 max() 函数的结合使用,以找出复杂数据结构中的最大值。
  • 提高了通过代码解决数学问题的能力,例如通过取模运算和二维列表来处理数据之间的关系。

“前进!前进!!不择手段地前进!!!”——《三体:死神永生》 

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

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

相关文章

网络安全漏洞

网络安全漏洞是指系统、应用或网络中的缺陷或弱点,可能被攻击者利用以执行未经授权的操作。对这些漏洞进行分类和管理是确保信息系统安全的关键步骤。以下是网络安全漏洞的分类与管理的详细介绍: 一、网络安全漏洞分类 软件漏洞 定义:软件在设计、开发、实现或维护过程中产…

【C++】vector的底层原理及实现

文章目录 vector的底层结构迭代器容量操作size()capacity()reserve()resize() 默认成员函数构造无参构造函数带参构造函数 析构拷贝构造赋值重载 operator[ ]插入删除操作insert()任意位置插入erase()任意位置删除push_back()尾插pop_back()尾删 vector的底层结构 我们的目的不…

Java面试之Java基础常见面试题

1、 Java中的基本数据类型有哪些&#xff1f; 1、整数类型&#xff1a;byte&#xff08;1字节&#xff09;、short&#xff08;2字节&#xff09;、int&#xff08;4字节&#xff09;、long&#xff08;8字节&#xff09; 2、浮点类型&#xff1a;float&#xff08;4字节&…

基于STM32的水族馆鱼缸系统设计172

基于STM32的水族馆鱼缸系统设计(局域网)(172) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】硬件模块组成【3】系统功能模块划分【4】ESP8266模块配置【5】Qt上位机网络连接原理(Android开发)【6】自动换水原理1.2 项目开发背景1.3 开发工具的选择1.4 系统框架图1.5 …

AEC10 SA计算整理 --- flash部分

整理了AE计算的一些参数和计算公式&#xff0c;方便查找。 PreflashSafeAggSA PreflashSafeSALuma FrameLumaBE16x16 PreflashSafeSATarget [set param/tr: lux]50.0 PreflashSafeSAAdjRatioNoScale PreflashSafeSATarget / PreflashSafeSALuma PreflashSafeSAAdjRatioCapNoS…

ExDark数据集标签转yolo格式(易懂)

ExDark数据集标签转yolo格式&#xff08;易懂&#xff09; 一、前言 知道大家为何而来&#xff0c;因此作者不必废话直接上代码。代码已经详细注释&#xff0c;如果读者还有不懂的地方&#xff0c;在评论区留言&#xff0c;我将在48小时内回复你&#xff08;如果我没毕业的话…

接口综合管理站iGR-IMS的产品特点

接口综合管理站iGR-IMS的产品特点可以归纳为以下几点&#xff1a; 1. 高安全性&#xff1a;产品选用Linux作为软件基础平台&#xff0c;同时能够配合电力专用隔离装置&#xff0c;实现跨安全区的单向数据传输&#xff0c;保证了数据传输的安全性。 2. 高性能&#xff1a;产品…

开源之夏|祝贺MatrixOne开源社区项目中选同学!

在本届「开源之夏 2024」活动中&#xff0c;MatrixOne开源社区共计上线3个项目任务&#xff0c;最终有 3位同学成功突围。接下来让我们看看每个项目的详细中选情况&#xff1a; 中选学生公示 项目名称&#xff1a;基于大语言模型的操作系统任务自动识别&#xff0c;拆解&#…

Stable Diffusion教程:如何实现人脸一致

在AI绘画中&#xff0c;一直都有一个比较困难的问题&#xff0c;就是如何保证每次出图都是同一个人。今天就这个问题分享一些个人实践&#xff0c;大家和我一起来看看吧。 一. 有哪些实现方式 方式1&#xff1a;固定Seed种子值。 固定Seed种子值出来的图片人物确实可以做到一…

canal+mq将数据同步到redis中的一些类型转换问题

在将 Canal 捕获到的数据库变更同步到 RabbitMQ 时&#xff0c;通常需要将变更事件的数据从 Java 对象转换为一种通用的数据格式&#xff0c;如 JSON。这样可以确保数据在不同系统之间传递时的兼容性。以下是将 Canal 数据同步到 RabbitMQ 并进行数据类型转换的示例代码。 1. …

Cherno 游戏引擎笔记记录(33~45)

好久不见。 My Github REPO(GitHub - JJJJJJJustin/Nut: The game_engine which learned from Cherno) 源码笔记&#xff0c;希望帮到你 :-} -------------------相机&原理---------- 》》》》查看这两篇说明&#xff0c;一个是坐标系统&#xff0c;一个是摄像机 &#xf…

通过Spring Boot结合实时流媒体技术对考试过程进行实时监控

本章将深入探讨考试系统中常见的复杂技术问题&#xff0c;并提供基于Spring Boot 3.x的解决方案。涵盖屏幕切换检测与防护、接打电话识别处理、行为监控摄像头使用、网络不稳定应对等&#xff0c;每篇文章详细剖析问题并提供实际案例与代码示例&#xff0c;帮助开发者应对挑战&…

大语言模型系列-Transformer(二)

Transformer 模型的入门可以从以下几个方面开始&#xff1a; 1. 理解基本概念 序列到序列&#xff08;Sequence-to-Sequence&#xff09;任务&#xff1a;Transformer 模型主要用于这类任务&#xff0c;如机器翻译、文本摘要等。注意力机制&#xff08;Attention Mechanism&a…

PyTorch基础(23)-- Tensor.scatter_()方法

一、前言 本次要介绍的函数为Tensor.scatter_函数&#xff0c;也是PyTorch中常用的函数之一&#xff0c;但遗憾的是&#xff0c;我想在网络上查询该函数的用法时&#xff0c;大部分的文章都是直接给出一个示例&#xff0c;看完之后&#xff0c;其中的原理我还是无法理解&#…

python生成器在读取接口用例中应用解析

Python生成器Generator Python生成器&#xff08;Generator&#xff09;是一种特殊类型的函数&#xff0c;它可以通过yield语句逐步生成值。 生成器提供了一种延迟计算的方式&#xff0c;可以逐步产生结果&#xff0c;而不是一次性生成所有的值。 1、生成器原理&#xff1a; …

Java中的AOP编程详解

Java中的AOP编程详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 什么是AOP&#xff1f; AOP&#xff08;Aspect-Oriented Programming&#xff0c;面…

2024年【A特种设备相关管理(A4电梯)】试题及解析及A特种设备相关管理(A4电梯)模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;A4电梯&#xff09;试题及解析根据新A特种设备相关管理&#xff08;A4电梯&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将A特种设备相关管理&#xff08;A4电梯&#x…

Mac密室逃脱游戏推荐:Escape Simulator for mac安装包

Escape Simulator 是一款逃生模拟游戏&#xff0c;玩家在游戏中需要寻找线索、解决谜题&#xff0c;以逃离各种房间或环境。这种类型的游戏通常设计有多个关卡或场景&#xff0c;每个场景都有不同的设计和难度。 在 Escape Simulator 中&#xff0c;玩家的目标通常是找到出口或…

算法力扣刷题——总结篇【四】和string类详解

前言 字符串章节部分跟随学习结束&#xff0c;作出总结。 一、题目及方法总结 &#xff08;1&#xff09;反转字符串&#xff1a;双指针法。 反转全部字符串&#xff0c;i在开头&#xff0c;j在结尾&#xff1b;判断条件i < j ;每隔2k反转前k个字符&#xff0c;i改成i 2…

PermissionError: [Errno 13] Permission denied: ‘/tmp/gradio...‘

无管理员权限修改 Gradio 默认路径遇到的 PermissionError 问题 在使用 Gradio 进行开发和部署时&#xff0c;可能会遇到如下报错&#xff1a; PermissionError: [Errno 13] Permission denied: /tmp/gradio/tmpzo5r9g_k.png报错分析 上述报错是由于在没有权限访问指定路径时…