2026-07-05:数对的最大公约数之和。用go语言,给定数组 nums(长度为 n)。先对每个位置 i 生成 prefixGcd[i]:令 mxi 为 nums[0..i] 中的最大值,然后 pr
📅 2026/7/6 13:40:34
👁️ 次浏览
2026-07-05数对的最大公约数之和。用go语言给定数组 nums长度为 n。先对每个位置 i 生成 prefixGcd[i]令 mxi 为 nums[0…i] 中的最大值然后 prefixGcd[i] 等于 nums[i] 与 mxi 的最大公约数。随后把整个 prefixGcd 按非递减顺序排序。接着从两端开始配对每次取当前最小的未配对元素与当前最大的未配对元素组成一对配对后把这两个元素移除并继续直到无法再形成更多数对如果排序后的 prefixGcd 长度为奇数正中间那个未能配对的元素保持不变并被忽略。对每个形成的数对计算它们的最大公约数并把所有这些最大公约数加总最终返回该总和。1 n nums.length 100000。1 nums[i] 1000000000。输入 nums [2,6,4]。输出 2。解释构造 prefixGcdinums[i]mxi0…i 最大值prefixGcd[i] gcd(nums[i], mxi)022216662462prefixGcd [2, 6, 2]。排序后形成 [2, 2, 6]。将最小和最大的元素配对gcd(2, 6) 2。剩下的中间元素 2 被忽略。因此总和为 2。题目来自力扣3867。一、完整分步详细执行流程步骤1遍历原数组逐位计算前缀最大值 mxi、生成 prefixGcd 数组遍历下标从0到数组末尾全程维护一个全局变量mx代表区间nums[0] ~ nums[i]的最大值每轮操作逻辑读取当前下标 i 的数组元素 nums[i]对比当前mx和 nums[i]更新mx为两者中更大的值得到当前区间最大值 mxi计算 nums[i] 与当前 mxi 的最大公约数 gcd结果存入 prefixGcd 对应下标位置。逐位演算示例i0nums[i]2初始 mx0更新 mx2计算 gcd(2,2)2 → prefixGcd[0] 2i1nums[i]662更新 mx6计算 gcd(6,6)6 → prefixGcd[1] 6i2nums[i]446mx保持6不变计算 gcd(4,6)2 → prefixGcd[2] 2本轮结束得到原始 prefixGcd 数组[2,6,2]步骤2对 prefixGcd 数组做升序排序将数组按从小到大重新排列原数组 [2,6,2] → 排序后[2,2,6]步骤3双端配对、计算每对gcd并累加总和配对规则左指针取当前最小未配对元素右指针取当前最大未配对元素两两配对数组长度为奇数时中间单独元素直接舍弃不参与计算。操作方式左指针从数组头部0开始右指针从数组尾部n-1开始循环配对每轮完成一对后左指针右移、右指针左移直到左指针 ≥ 右指针停止。本例数组长度n3左指针 l0值2右指针 r2值6组成一对计算该对gcd(2,6)2累加至总结果 ansl自增到1r自减到1此时 l ≥ r循环终止下标1的中间元素2无配对直接忽略不参与求和。步骤4返回累加总和所有配对的gcd相加结果为2即为最终输出。二、全局完整逻辑概括一次线性扫描原数组同步维护前缀最大值同步生成等长 prefixGcd 数组对 prefixGcd 执行标准升序排序双指针首尾配对遍历排序后的数组成对计算gcd并累加中间落单元素丢弃返回累加后的总和。三、时间复杂度分析设数组长度为 n1 ≤ n ≤ 1e5生成 prefixGcd单次线性遍历 O(n)单次gcd欧几里得算法复杂度为对数级常数可忽略整体这一步 O(n)。排序 prefixGcdGo标准库 slices.Sort 底层为快速排序时间复杂度 O(n log n)是整个算法的瓶颈。首尾配对遍历仅循环 n/2 次线性 O(n)单次gcd为常数级。总时间复杂度O(n log n)四、额外空间复杂度分析额外开辟长度为n的 prefixGcd 数组存储中间结果占用 O(n) 空间排序的栈/临时空间为排序算法内置开销不计入额外业务空间仅使用常数级临时变量 mx、ans、左右指针等。总额外空间复杂度O(n)Go完整代码如下packagemainimport(fmtslices)funcgcdSum(nums[]int)(ansint64){n:len(nums)pre:make([]int,n)mx:0fori,x:rangenums{mxmax(mx,x)pre[i]gcd(x,mx)}slices.Sort(pre)fori:rangen/2{ansint64(gcd(pre[i],pre[n-1-i]))}return}funcgcd(a,bint)int{fora!0{a,bb%a,a}returnb}funcmain(){nums:[]int{2,6,4}result:gcdSum(nums)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-importmathdefgcd_sum(nums):nlen(nums)pre[]mx0forxinnums:mxmax(mx,x)pre.append(math.gcd(x,mx))pre.sort()ans0foriinrange(n//2):ansmath.gcd(pre[i],pre[n-1-i])returnansif__name____main__:nums[2,6,4]resultgcd_sum(nums)print(result)C完整代码如下#includeiostream#includevector#includealgorithm// 自定义 gcd 函数欧几里得算法intgcd(inta,intb){while(a!0){inttmpa;ab%a;btmp;}returnb;}longlonggcdSum(std::vectorintnums){intnnums.size();std::vectorintpre(n);intmx0;for(inti0;in;i){mxstd::max(mx,nums[i]);pre[i]gcd(nums[i],mx);}std::sort(pre.begin(),pre.end());longlongans0;for(inti0;in/2;i){ansgcd(pre[i],pre[n-1-i]);}returnans;}intmain(){std::vectorintnums{2,6,4};longlongresultgcdSum(nums);std::coutresultstd::endl;return0;}
1. 项目概述:从3D到6DoF的技术跨越在嵌入式传感器领域,运动跟踪技术正经历着从基础3D空间感知到完整6自由度(6DoF)定位的范式转变。这个项目采用TDK IIM-42652六轴IMU传感器与Microchip PIC18F86K90微控制器的组合,构建…
📅 2026/7/6 13:40:34
NVIDIA GPU(cuDNN / cuBLAS / Transformer 视角) NVIDIA GPU 典型算子一览表 编号 类型 领域 算子类别 典型算子名称 数学方程式 / 计算描述 应用场景 时间 / 空间 / 其他复杂度 优势 劣势 1 计算密集型 深度学习 Dot-Product GEMM(矩阵乘) CMN=AMKBKN…
📅 2026/7/6 13:40:34
一、概述不同行业项目的环境、负荷、安全标准差异较大,母线槽不能通用选型。扬中金展电气拥有 16 年母线槽定制生产经验,服务各类基建、制造、化工、住宅项目,本文针对四大主流场景,梳理差异化选型标准,方便电气设计人…
📅 2026/7/6 13:40:34
你是否曾在 Bash shell 中工作时忘记过命令语法?
GNU Bash 是 GNU 命令行界面 shell 项目,完整实现了 IEEE POSIX 规范。它是最常用的命令行 shell 之一。不过,有时可能很难知道或记住所有可能的命令。
本文包含一份备忘清单,帮助你快速恢复工作或改进工作流程。当前版本…
📅 2026/7/6 14:40:45
在现代前端工程体系中,基于Service Worker 静态资源缓存 的离线能力,已成为 PWA、中后台系统、移动端 H5 的标配能力。常规前端更新策略多为「打开即更新、静默强制更新、刷新替换新版本」,这类策略在网络正常环境下体验流畅,但在…
📅 2026/7/6 14:40:45
Nintendo Switch破解定制系统完全指南:从入门到精通 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable
想要免费畅玩Switch海量游戏?厌倦了昂贵的游戏卡带?…
📅 2026/7/6 14:40:45
介绍:前言:在2026年,苹果发布了搭载全新 M5 芯片的MacBook Air ,air 系列作为苹果电脑乃至全品牌中都是享誉超“轻薄本”的专属标杆产品从初代到现在,air一直都是使用无风扇设计,也就是被动散热,…
📅 2026/7/6 14:40:45
三步掌握FanControl:从零到精通的免费开源风扇控制方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…
📅 2026/7/6 14:40:45
哈夫曼编码属于 B. 无损压缩 ✅
原因:哈夫曼编码是一种基于字符出现频率的变长前缀编码方法,它通过构建最优二叉树(哈夫曼树)为每个符号分配唯一且无歧义的二进制码,不丢失任何原始信息,解码后可完全恢复原…
📅 2026/7/6 14:38:44
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray
你是否厌倦了Windows任务栏上密密麻麻的图标&…
📅 2026/7/6 0:01:19
1. 项目概述:一次对React Server Components核心安全机制的深度剖析 最近在安全研究圈里,CVE-2025-55182这个编号被频繁提及,它直指React生态中一个相对较新的概念——React Server Components(RSC)。作为一个长期关注…
📅 2026/7/6 0:01:20
星露谷物语终极MOD指南:5个步骤打造智能自动化农场 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods
你是否厌倦了在星露谷物语中重复收割、加工、存储的繁琐操作?梦…
📅 2026/7/6 0:01:20
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/6 10:35:30
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/6 6:10:21
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/6 5:35:58
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/6 6:10:28
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/6 6:10:26
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/5 23:45:08