Leetcode 2464. 有效分割中的最少子数组数目

embedded/2024/9/23 15:47:32/

1.题目基本信息

1.1.题目描述

给定一个整数数组 nums。

如果要将整数数组 nums 拆分为 子数组 后是 有效的,则必须满足:

每个子数组的第一个和最后一个元素的最大公约数 大于 1,且
nums 的每个元素只属于一个子数组。
返回 nums 的 有效 子数组拆分中的 最少 子数组数目。如果不能进行有效的子数组拆分,则返回 -1。

注意:

两个数的 最大公约数 是能整除两个数的最大正整数。
子数组 是数组中连续的非空部分。

1.2.题目地址

https://leetcode.cn/problems/minimum-subarrays-in-a-valid-split/description/

2.解题方法

2.1.解题思路

动态规划

2.2.解题步骤

第一步,状态定义;dp[i]指nums中前i个元素的最小合法子数组数

第二步,状态初始化,前0个的最小组成数为0

第三步,状态转移;dp[i]=min(dp[i],dp[j-1]+1) (其中1<=j<=i并且nums[i-1]与nums[j-1]的最大公约数大于1),状态数组的最后一个值为inf,则返回-1,否则dp[-1]即为最终题解

3.解题代码

Python代码

class Solution:def validSubarraySplit(self, nums: List[int]) -> int:length=len(nums)# 第一步,状态定义;dp[i]指nums中前i个元素的最小合法子数组数dp=[inf]*(length+1)# 第二步,状态初始化,前0个的最小组成数为0dp[0]=0# 第三步,状态转移;dp[i]=min(dp[i],dp[j-1]+1) (其中1<=j<=i并且nums[i-1]与nums[j-1]的最大公约数大于1)for i in range(1,length+1):for j in range(1,i+1):if gcd(nums[i-1],nums[j-1])>1:dp[i]=min(dp[i],dp[j-1]+1)# print(dp)return dp[-1] if dp[-1]!=inf else -1

4.执行结果

在这里插入图片描述


http://www.ppmy.cn/embedded/115666.html

相关文章

Matlab|电-气-热综合能源系统耦合优化调度

1 主要内容 程序主要做的是一个考虑电、热、气网耦合调度的综合能源系统优化调度模型&#xff0c;考虑了电网与气网&#xff0c;电网与热网的耦合&#xff0c;电网部分为10机39节点的综合能源系统&#xff0c;热网为6节点&#xff0c;气网部分为比利时20节点气网&#xff0c;潮…

python机器人编程——用手机web远程视频监控并控制小车驾驶(上篇vrep仿真)

目录 一、前言二、技术架构三、设备端实现四、服务控制端实现&#xff08;1&#xff09;摄像头服务模块&#xff08;2&#xff09;web服务器 五、web端实现&#xff08;1&#xff09;视频显示&#xff08;2&#xff09;驾驶盘的实现&#xff08;3&#xff09;心跳 六、总结七、…

MongoDB 关系

MongoDB 关系 MongoDB 是一种流行的 NoSQL 数据库,它使用文档存储数据。与传统的关系型数据库不同,MongoDB 不使用表格和行来存储数据,而是使用集合和文档。在 MongoDB 中,一个文档是一个 BSON(二进制 JSON)对象,它类似于 JSON 对象,但包含更多的数据类型。 MongoDB …

了解华为云容器引擎(Cloud Container Engine)

1.什么是云容器引擎&#xff1f; 云容器引擎&#xff08;Cloud Container Engine&#xff0c;简称CCE&#xff09;提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎&#xff0c;您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎是一个企业级的…

去耦合的一些建议

尽量少用全局变量&#xff0c;以减少状态共享和潜在的副作用。 模块化设计&#xff1a;将代码分成小模块&#xff0c;每个模块独立实现特定功能&#xff0c;减少模块之间的相互依赖。 封装&#xff1a;将数据和操作封装在类中&#xff0c;控制对内部状态的访问&#xff0c;避…

【系统架构设计师】特定领域软件架构(经典习题)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3~4题】【第5~6题】【第7~8题】【第9~10题】【第11~12题】【第13~14题】【第15~17题】【试题一(共25分)】【问题 1】(13 分)【第1~2题】 特定领域软件架构(Domain Specific Software Architecture…

【python】字面量

字面量 学习目标&#xff1a; 掌握字面量的含义了解常见的字面量类型基于print语句完成各类字面量的输出 什么是字面量&#xff1a; 字面量&#xff1a;在代码中&#xff0c;被写下来的固定的值&#xff0c;称之为字面零 Python中有哪些值可以被写下来&#xff1f; 如何在…

Flyway-SQL 脚本与 Java 迁移

Flyway SQL 脚本与 Java 迁移详解 Flyway 是一种数据库迁移工具&#xff0c;提供了 SQL 脚本和 Java 迁移两种方式来管理数据库变更。在 Flyway 中&#xff0c;数据库迁移是通过逐步执行迁移脚本或代码来完成的。Flyway 既可以通过 SQL 文件直接执行数据库操作&#xff0c;也可…