当前位置: 首页 > news >正文

Qwen模型 LeetCode 2584. 分割数组使乘积互质 JavaScript实现

哇JavaScript版本来啦这道题用JS写起来特别优雅让我给你展示一个清晰又高效的实现javascript/*** param {number[]} nums* return {number}*/var findValidSplit function(nums) {const n nums.length;if (n 1) return -1;// 记录每个质因数最后出现的位置const lastOccurrence new Map();// 预处理找出每个位置的所有质因数并记录最后出现位置for (let i 0; i n; i) {const primeFactors getPrimeFactors(nums[i]);for (const factor of primeFactors) {lastOccurrence.set(factor, i);}}// 贪心扫描维护当前需要覆盖的最远位置let maxReach 0;for (let i 0; i n - 1; i) {const primeFactors getPrimeFactors(nums[i]);// 更新当前需要覆盖的最远位置for (const factor of primeFactors) {maxReach Math.max(maxReach, lastOccurrence.get(factor));}// 如果当前位置可以作为分割点if (i maxReach) {return i;}}return -1;};// 获取一个数的所有质因数去重function getPrimeFactors(num) {const factors new Set();// 处理因子2if (num % 2 0) {factors.add(2);while (num % 2 0) {num Math.floor(num / 2);}}// 处理奇数因子for (let i 3; i * i num; i 2) {if (num % i 0) {factors.add(i);while (num % i 0) {num Math.floor(num / i);}}}// 如果剩下的数大于1说明它本身就是一个质数if (num 1) {factors.add(num);}return factors;}嘿嘿这个JS版本是不是看起来特别清爽✨**让我用个生活化的例子解释一下**想象你有一排彩色的糖果每颗糖果都有自己的颜色配方质因数。你要在某个位置切一刀让左边和右边的糖果没有任何共同的颜色。比如数组 [6, 10, 15]- 6 2 × 3红色蓝色- 10 2 × 5红色绿色- 15 3 × 5蓝色绿色你看红色从位置0延续到1蓝色从0延续到2绿色从1延续到2。所以我们要等到位置2之后才能切割但数组只有3个元素所以返回-1**JS实现的小技巧**- ✅ 用 Set 自动去重质因数超方便- ✅ 用 Map 记录最后出现位置查找O(1)- ✅ Math.floor() 确保整数除法虽然JS中 / 对整数结果没问题但显式更好- ✅ 函数式风格逻辑清晰易读**时间复杂度**O(n√m)其中m是数组中的最大值**空间复杂度**O(k)k是不同质因数的个数你觉得这个思路怎么样JS写算法题其实很舒服呢特别是Set和Map这些数据结构用起来特别顺手要不要再来一道类似的题目练练手
http://www.zskr.cn/news/1362574.html

相关文章:

  • 别再纠结选哪个了!用Python实战ARIMA和LSTM预测气温,看谁更准(附完整代码)
  • Ubuntu 22.04 网络配置翻车实录:从‘sudo apt update’报错到完美解决的完整排错手册
  • 用Python复现水下图像增强经典论文:Color Balance and Fusion保姆级代码解析
  • Mac磁盘空间告急?手把手教你清理Sonoma里那些偷偷占地方的4K动态壁纸
  • 2026泡棉厂家精选指南:医用泡棉/泡棉供应厂家/泡棉供应商/泡棉公司/泡棉品牌/泡棉工厂/泡棉源头厂家/泡棉生产厂家/选择指南 - 优质品牌商家
  • 2026义乌阿里巴巴培训信任度解析:义乌阿里巴巴运营培训、金华PS培训、金华Temu培训、金华Tiktok培训选择指南 - 优质品牌商家
  • 02-系统技术架构师必备——五大架构风格与模式深度解析
  • 01-系统技术架构师必备——软件架构设计基础与核心概念
  • Unity ECS帧同步实战:确定性模拟与Job化网络Tick
  • Unity手游Mono堆泄漏:80MB硬限下的静默崩溃真相
  • 2026年近期,重庆市场如何甄选可靠的岩棉净化板源头厂商? - 2026年企业推荐榜
  • 评测全网10款主流降AIGC平台:一键锁定高效助手!
  • 告别ibus!在Ubuntu 22.04上纯净安装Fcitx+搜狗输入法(附完整卸载ibus命令)
  • 别再直接拔了!Mac上移动硬盘安全弹出的保姆级教程(附Spotlight索引关闭方法)
  • HarmonyOS CacheUtil 进阶:缓存设计模式与典型应用场景
  • 别再乱码了!一文搞懂Windows记事本里ANSI、GBK、SJIS这些编码到底怎么选
  • 2026技术分享:企业海外投资需要哪些部门审批/公司成立一年可以对外投资吗/出生证明海牙认证/北京企业境外投资/选择指南 - 优质品牌商家
  • 别再只调参了!用SAO算法优化你的神经网络超参数(附PyTorch示例)
  • 2026年靠谱的绵阳整装全屋定制高性价比公司 - 品牌宣传支持者
  • 05华夏之光永存:28nm耐高温抗辐射可靠性专项优化|国产制程车规工业级对标3nm环境耐受性方案
  • 【2024最严合规落地清单】:金融/医疗/政务三大强监管行业AI Agent设计红线与审计通关模板
  • 别再只盯着MSE了!用Python实战对比5大回归评估指标(附避坑指南)
  • 别再死记硬背了!用Python实战案例帮你彻底搞懂假设检验(附代码与避坑指南)
  • 深圳企业如何在AI搜索浪潮中抢占认知高地:GEO优化实战路径与服务商选型指南 - GEO优化
  • 虚拟粒子与机器学习:提升粗粒化分子模拟精度的新方法
  • Vision Mamba边缘硬件加速器设计:从线性SSM原理到端到端架构实现
  • HarmonyOS BgTaskUtil 后台任务生命周期与错误处理最佳实践
  • HarmonyOS BgTaskUtil 后台长时任务入门:让 App 在后台持续运行
  • 别再硬改Seurat对象行名了!从ENSG到Gene Symbol,我的完整避坑与重建流程
  • 保姆级教程:用Python脚本将COCO人体关键点数据集转为YOLOv5/YOLOv8训练格式