news 2026/4/16 14:05:07

A.每日一题——1390. 四因数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
A.每日一题——1390. 四因数

题目链接:1390. 四因数(中等)

算法原理:

解法:记忆化枚举

28ms击败55.70%

时间复杂度O(n × √M)

对于一个数n最暴力的方法就是从1开始枚举到n,然后统计它有多少个因数,再进行累加,但这样的话时间复杂度会飙升到O(N²),即使通过也会超时的

所以咱们可以在上面那个基础上逐渐优化👇

①咱只需找俩因数即可:因为一个数至少有俩因数,1和它本身,这就已经是俩因数了,因此咱们只需在它俩中间再找俩即可,所以逐个枚举时就可以从2开始枚举到n-1即可

②咱只需找一次因数即可:因为因数一定是成对出现的,

比如说针对21,枚举到3时会出现21÷3=7,这里3是21的因数,但同时7也是21的因数,因此咱们找一次因数即可,但这里有个细节,

比如说针对16,枚举到4时,会出现16÷4=4,但4只能算一个因数,因此这时累加时只能加一个

鉴于以上分析,我们就没必要从2遍历到n-1了,因为会算重复,所以咱们只需要遍历一半即可,即从2开始枚举到√n,这是时间复杂度的一个巨大的优化!

③备忘录优化:由于同一个数可能重复出现,因此当这个数第一次出现的时候就存进哈希表,下次遍历的时候就没必要重新算一遍了

答疑:

Q1:如果出现两个相同的因数的话,那么只能算一次吧,加上只能成为奇数啊,但是咱们要求的是4因数,是偶数,因数相同的时候咱就没必要算了啊,直接跳过呗

不可以,虽然不会少算,但会多算!

比如16的因数是1、2、4、8、16,如果直接把4跳过,会把16也算成四因数的数,导致结果偏大

Java代码:

class Solution { public int sumFourDivisors(int[] nums) { int ret=0; //建立备忘录 Map<Integer,Integer> hash=new HashMap<>(); for(int x:nums){ //先往备忘录里瞅瞅 if(hash.containsKey(x)){ ret+=hash.get(x); continue; } int count=0,sum=0; for(int i=2;i<=Math.pow(x,0.5);i++){ if(x%i==0&&i!=x/i){ count+=2; sum+=(i+x/i); }else if(x%i==0&&i==x/i){ count++; sum+=i; } if(count>2) break; } if(count==2){ hash.put(x,x+1+sum); ret+=(x+1+sum); } } return ret; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 13:49:54

HY-MT1.5-1.8B性能详解:小模型大能力,实时翻译场景实测

HY-MT1.5-1.8B性能详解&#xff1a;小模型大能力&#xff0c;实时翻译场景实测 在多语言交流日益频繁的今天&#xff0c;高质量、低延迟的机器翻译技术成为跨语言沟通的核心支撑。腾讯近期开源了混元翻译模型1.5版本&#xff08;HY-MT1.5&#xff09;&#xff0c;其中包含两个…

作者头像 李华
网站建设 2026/4/16 13:44:05

Qwen3-VL最新镜像:预装所有依赖,解决99%报错问题

Qwen3-VL最新镜像&#xff1a;预装所有依赖&#xff0c;解决99%报错问题 引言 如果你正在尝试部署Qwen3-VL多模态大模型&#xff0c;却因为各种依赖冲突、环境配置问题而焦头烂额&#xff0c;这篇文章就是为你准备的。作为一款强大的视觉-语言多模态模型&#xff0c;Qwen3-VL…

作者头像 李华
网站建设 2026/4/16 13:35:12

为什么Redis Pipeline能让你的面试脱颖而出?

文章目录Pipeline有什么好处&#xff1f;为什么要用Pipeline&#xff1f;一、为什么需要Pipeline&#xff1f;1. 网络延迟的“罪与罚”2. 现实中的例子二、Pipeline的工作原理1. 批量处理的“秘密”2. Pipeline的实现原理3. Pipeline的优缺点三、Pipeline的实际应用1. 常见场景…

作者头像 李华
网站建设 2026/4/16 13:36:17

为什么HY-MT1.5部署慢?网络预加载优化实战教程揭秘

为什么HY-MT1.5部署慢&#xff1f;网络预加载优化实战教程揭秘 在大模型落地加速的今天&#xff0c;翻译模型作为跨语言沟通的核心工具&#xff0c;正被广泛应用于全球化服务、内容本地化和实时交互场景。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其高精度、多…

作者头像 李华
网站建设 2026/4/15 13:57:16

Qwen3-VL游戏开发:自动生成道具描述,独立工作室福音

Qwen3-VL游戏开发&#xff1a;自动生成道具描述&#xff0c;独立工作室福音 1. 为什么游戏开发者需要Qwen3-VL 独立游戏开发者在创作过程中&#xff0c;经常面临一个耗时又枯燥的任务&#xff1a;为游戏中的数百种道具编写描述文本。从一把普通的铁剑到神秘的魔法卷轴&#x…

作者头像 李华
网站建设 2026/4/16 9:06:42

Qwen3-VL工业质检案例:云端部署比本地省70%

Qwen3-VL工业质检案例&#xff1a;云端部署比本地省70% 1. 为什么选择Qwen3-VL做工业质检&#xff1f; 想象一下&#xff0c;你是一家电子元件生产厂的质检主管。每天需要检查成千上万个微小零件的焊接质量&#xff0c;传统人工检测不仅效率低&#xff0c;还容易因疲劳导致漏…

作者头像 李华