Leetcode 3012. Minimize Length of Array Using Operations

  • Leetcode 3012. Minimize Length of Array Using Operations
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3012. Minimize Length of Array Using Operations

1. 解题思路

这一题有一点数学题的意思,显然,根据最大公约数相关的知识,我们知道,对任意两个数反复相减,我们即可得到他们的最大公约数。

因此,这里,我们显然可以通过有限次操作,获得数组当中所有数的最大公约数。

然后,如果有一个数比其他数小,不妨设为 x x x,那么其他所有的数 y i y_i yi都可以通过 x ≡ y i ( m o d x ) x \equiv y_i (mod x) xyi(modx)进行消除,于是总可以去除掉所有比 x x x大的数。

结合上述两个结论,我们不难看到:

  • 我们可以通过有限次操作获得的最小的数一定是所有数的最小公约数,且原数组中任意比这个最小公约数大的数都可以被消掉。

因此,我们最后留下的一定就是若干个最小公约数,而对于他们,我们能够消除后保留的数目最少也会有 ⌈ n 2 ⌉ \lceil \frac{n}{2} \rceil 2n

2. 代码实现

给出python代码实现如下:

class Solution:def minimumArrayLength(self, nums: List[int]) -> int:elems = sorted(set(nums))_gcd = elems[0]for x in elems[1:]:_gcd = gcd(_gcd, x)if _gcd == 1:breakif _gcd in elems:return (Counter(nums)[_gcd] + 1) // 2else:return 1

提交代码评测得到:耗时604ms,占用内存36.3MB。

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

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

相关文章

埋点自动化测试框架设计

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 大数据时代,多数的web或app产品都会使用第三方或自己…

SpringCloud Alibaba 深入源码 - Nacos 分级存储模型、支撑百万服务注册压力、解决并发读写问题(CopyOnWrite)

目录 一、SpringCloudAlibaba 源码分析 1.1、SpringCloud & SpringCloudAlibaba 常用组件 1.2、Nacos的服务注册表结构是怎样的? 1.2.1、Nacos的分级存储模型(理论层) 1.2.2、Nacos 源码启动(准备工作) 1.2.…

HubSpot SEO功能好用吗?

HubSpot对于SEO(搜索引擎优化)提供了全面的工具和功能,帮助用户优化其网站以在搜索引擎中取得更好的排名。以下是关于HubSpot SEO的一些关键方面: 内容优化: HubSpot的内容工具允许用户创建并优化吸引人的内容。通过关…

激光雷达标定入门(5)Docker网络配置

1 前言 这一步是对之前专栏中一键安装介绍的一点扩展,是因为在后续的部署中,特别是雷达的驱动中,发现在docker的容器中无法接到雷达的数据,但是在容器外功能包能正常收到雷达的信号,后面发现是容器的IP没有在雷达的IP…

最新阿里云免费SSL证书申请使用介绍

为网站部署SSL证书已经是现在站长的必须要做的工作,然而SSL证书并不全是免费的,免费且好用的资源也越来越有限,毕竟嘛,这些都需要成本。 PS:最下方有最终建议方案。 本文介绍当前(2024年)阿里云免费SSL证书信息。 阿…

二极管解读:封装与外观、参数意义、发展历史与未来趋势

在电子技术不断进步的今天,二极管这一基础元件的作用不断扩大,其性能及应用成为电子设计师和爱好者们讨论的热门话题。本文将从四个角度为您解读二极管的世界:封装和外观特征、参数及其重要意义、发展历史,以及未来技术发展趋势。…

60 C++ 多线程 ------原子操作概念,atomic关键字

前提:回忆使用 互斥量加锁 完成共享数据的访问。 mutex mymutex; //锁子 mymutex.lock(); // 锁住完成的代码 mymutex.unlock(); 一 互斥量好是好,但是在这种case下,效率并不高,因此C给我们提供了原子操作的概念,…

leetcode2744. 最大字符串配对数目

Problem: 2744. 最大字符串配对数目 文章目录 题目解题方法1复杂度1Code1解题方法2复杂度2Code2 题目 给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配&a…

Vue3使用

1、列表实现 <el-table :data"tableData" border style"width: 100%" selection-change"handleSelectionChange" :header-cell-style"{text-align:center}"><el-table-column type"selection" width"55"…

使用turf.polygon判断点是否在面内部

const poly turf.polygon(obj.features[0].geometry.coordinates) const point turf.point(newPoint)const isWithinBoundary turf.booleanPointInPolygon(point, poly) console.log(isWithinBoundary, 点是否在面内)ps&#xff1a;需要注意的是&#xff0c; 如果使用turf.p…

【注解】@RequiredArgsConstructor 按需自动生成构造函数,举例说明

RequiredArgsConstructor 是Lombok库中的一种注解&#xff0c;它用于自动生成构造函数&#xff0c;针对于final字段的构造函数。它的作用包括以下几点&#xff1a; 自动生成构造函数&#xff1a;RequiredArgsConstructor 注解自动生成一个构造函数&#xff0c;该构造函数接受标…

以太坊账户地址与比特B地址生成方法对比

作者 张群&#xff08;赛联区块链教育首席讲师&#xff0c;工信部赛迪特聘资深专家&#xff0c;CSDN认证业界专家&#xff0c;微软认证专家&#xff0c;多家企业区块链产品顾问&#xff09;关注张群&#xff0c;为您提供一站式区块链技术和方案咨询。 以太坊和比特B地址在生成方…

Vue2:使用pubsub-js实现组件间通信

一、场景描述 我们学习了全局事件总线&#xff0c;通过自定义事件的方式来进行组件间通信。 现在&#xff0c;再学习一个第三方库pubsub-js&#xff0c;消息订阅与发布的方式来实现组件间通信。 二、使用pubsub-js 1、安装 npm i pubsub-js2、组件里引入 import pubsub fr…

17.JVM-[一篇通]

文章目录 JVM1.JVM 简介 (一个进程有一个JVM)1.1JVM 发展史1.2 JVM 和《Java虚拟机规范》 2.JVM 运行流程2.1JVM 执行流程 3.JVM 运行时数据区3.1 堆&#xff08;线程共享 一个进程只有一份堆&#xff09;3.2Java虚拟机栈&#xff08;线程私有 每个线程都有一份属于自己的栈&am…

Linux网络编程(二-套接字)

目录 一、背景知识 1.1 端口号 1.2 网络字节序 1.3 地址转换函数 二、Socket简介 三、套接字相关的函数 3.1 socket() 3.2 bind() 3.3 connect() 3.4 listen() 3.5 accept() 3.6 read()/recv()/recvfrom() 3.7 send()/sendto() 3.8 close() 四、UPD客服/服务端实…

规范文字引言与材料

撰写引言 什么是引言&#xff1f; 引言又叫前言、绪论、引子、绪言等。 引言写在书或文章的正文前面&#xff0c;是类似序言或导言的部分。 在科研论文中&#xff0c;引言是引导读者了解研究背景、目的、 意义和研究问题的关键部分。对于人工智能方向的论 文&#xff0c;引言…

x-cmd pkg | curl - 极其强大的网络请求处理工具

目录 简介用户首次快速实验指南轻量级网络请求工具安全竞品和相关作品进一步探索 简介 curl&#xff08;Client for URLs&#xff09;是一款网络请求工具。 curl 于 1996 年首次发布。它最初被命名为 httpget 后更名为curl。 curl 常用于发送网络请求&#xff0c;它支持多种网…

一条sql是如何运行的

在我们平时使用sql的时候&#xff0c;基本是基于黑盒的使用方式&#xff0c;在客户端输入一条sql语句&#xff0c;然后回显想要的数据&#xff0c;对于mysql server端内部如何运行的以及与存储引擎如何交互的不得而知。 通过下面一幅图&#xff0c;大致描述客户端和服务端交互…

HTML中有哪些属于表单元素?那些属于表格元素?请分别列举5个并说明用途?

在HTML中&#xff0c;有一些元素是专门用于表单的输入和布局&#xff0c;还有一些元素是专门用于表格的显示。以下是五个表单元素和五个表格元素&#xff0c;以及它们的用途&#xff1a; 表单元素&#xff1a; <input>&#xff1a;这是最常用的表单元素&#xff0c;用于…

免费分享Deepl和google谷歌翻译api接口

谷歌翻译API可以帮助用户在不同语言之间进行即时翻译&#xff0c;支持超过 200 种语言的互译功能。 接口亲测是可用&#xff0c;简单而且速度很快。专用跨境电商等业务。 接口地址&#xff1a;https://www.tanshuapi.com/market/detail-98 接口请求测试phthon示例&#xff1a…