news 2026/7/16 18:24:34

第 172 场双周赛——3780. 能被 3 整除的三元组最大和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 172 场双周赛——3780. 能被 3 整除的三元组最大和

题目链接:3780. 能被 3 整除的三元组最大和(中等)

算法原理:

解法:分类讨论 + 贪心 + 枚举

154ms击败46.80%

时间复杂度O(Nlogn)

①分组:将数组元素按 “模 3 的结果” 分为 3 组(余 0→mod0、余 1→mod1、余 2→mod2)
②排序:每组内降序排序,方便快速取组内最大元素
计算有效组合的和:
③情况 1:同组取 3 个(同余 3 数的和必是 3 的倍数),若组内元素≥3,取前 3 大元素相加
④情况 2:三组各取 1 个(0+1+2 的和必是 3 的倍数),若三组均至少有 1 个元素,取每组最大元素相加
⑤取最大值:从所有有效组合的和中取最大值;若数组长度不足 3,直接返回 0

Java代码:

class Solution { public int maximumSum(int[] nums) { int n=nums.length,ret=0; if(n<3) return 0; List<Integer> mod0=new ArrayList<>(); List<Integer> mod1=new ArrayList<>(); List<Integer> mod2=new ArrayList<>(); for(int x:nums){ if(x%3==0) mod0.add(x); else if(x%3==1) mod1.add(x); else mod2.add(x); } //对每个集合降序,方便取最大值 Collections.sort(mod0,(a,b)->b-a); Collections.sort(mod1,(a,b)->b-a); Collections.sort(mod2,(a,b)->b-a); int size0=mod0.size(),size1=mod1.size(),size2=mod2.size(); if(size0>=3) ret=Math.max(ret,mod0.get(0)+mod0.get(1)+mod0.get(2)); if(size1>=3) ret=Math.max(ret,mod1.get(0)+mod1.get(1)+mod1.get(2)); if(size2>=3) ret=Math.max(ret,mod2.get(0)+mod2.get(1)+mod2.get(2)); if(size0>=1&&size1>=1&&size2>=1) ret=Math.max(ret,mod0.get(0)+mod1.get(0)+mod2.get(0)); return ret; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 2:05:38

eDiary电子日记本(记录生活点滴)

eDiary电子日记本是一款简单易用的电子日记软件&#xff0c;可以帮助用户记录生活中的点滴&#xff0c;保存珍贵的回忆和心情&#xff0c;以高强度加密和本地优先存储守护隐私&#xff0c;支持多用户隔离、一键隐藏等安全功能。 软件功能 1. 简单易用&#xff1a;该软件操作简…

作者头像 李华
网站建设 2026/7/17 5:49:40

Thinkphp和Laravel+vue好未来团购网系统vue

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravelvue好未来团购网系统vue 项目开发技术介…

作者头像 李华
网站建设 2026/7/16 18:51:08

Open-AutoGLM vs SoapUI:谁才是自动化测试协同的终极利器?

第一章&#xff1a;Open-AutoGLM与SoapUI协同差异的宏观审视在自动化测试与接口验证的技术演进中&#xff0c;Open-AutoGLM 与 SoapUI 代表了两种截然不同的设计哲学与实现路径。前者依托大语言模型驱动的智能脚本生成机制&#xff0c;强调自然语言到测试用例的自动转化&#x…

作者头像 李华
网站建设 2026/7/17 2:36:22

Android ---【经验篇】项目上线前工序:部署 SpringBoot 项目(二)

接上一篇文章继续&#xff1a; Android —【经验篇】项目上线前工序&#xff1a;CentOS 服务器环境搭建&#xff08;一&#xff09; 文章目录一、部署 SpringBoot 项目1.1 打包 SpringBoot jar 包1.2 导入数据库文件&#xff0c;以.sql结尾的文件1.3 执行 SpringBoot Jar 包1.4…

作者头像 李华
网站建设 2026/7/16 16:12:04

还在盲目集成测试工具?Open-AutoGLM与SOAtest的6个致命区别你必须知道

第一章&#xff1a;Open-AutoGLM与SOAtest集成差异的全局视角在现代自动化测试架构中&#xff0c;Open-AutoGLM 与 SOAtest 的集成路径展现出显著的技术分野。二者虽均致力于提升接口测试与服务验证效率&#xff0c;但在设计理念、扩展机制和生态兼容性方面存在根本性差异。核心…

作者头像 李华