news 2026/6/10 13:10:38

第 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/6/10 11:36:32

8个AI写作工具,专科生轻松搞定毕业论文!

8个AI写作工具&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 写作工具&#xff0c;让论文不再难 对于许多专科生来说&#xff0c;撰写毕业论文不仅是一项学术任务&#xff0c;更是一场与时间、压力和知识储备的较量。面对繁重的写作任务&#xff0c;传统的写作方式往往效…

作者头像 李华
网站建设 2026/6/8 13:51:33

开题报告:从“过场文书”到“研究蓝图”的思维重构革命

开题报告&#xff0c;这个介于课程论文和毕业设计之间的学术任务&#xff0c;往往成为研究生学术生涯中的第一道“鬼门关”。它既不像课程论文那样可以“应付”&#xff0c;又不像毕业论文那样有明确的方向。据统计&#xff0c;超过60%的研究生会经历至少一次开题报告被退回修改…

作者头像 李华
网站建设 2026/6/9 7:38:25

Open-AutoGLM与SOAtest集成避坑指南,仅限高级测试工程师掌握的稀缺方案

第一章&#xff1a;Open-AutoGLM与SOAtest集成避坑指南概述在现代企业级自动化测试架构中&#xff0c;将自然语言处理模型与功能测试工具深度集成已成为提升测试智能化水平的关键路径。Open-AutoGLM作为基于AutoGLM架构开放的自然语言生成引擎&#xff0c;具备理解测试需求、自…

作者头像 李华
网站建设 2026/6/9 21:21:51

【性能测试革命】:Open-AutoGLM如何重塑JMeter的传统地位?

第一章&#xff1a;性能测试范式的演进与挑战随着分布式系统与云原生架构的普及&#xff0c;传统的性能测试方法正面临前所未有的挑战。从早期的单机压测到如今基于容器化与服务网格的复杂场景模拟&#xff0c;性能测试的范式经历了根本性变革。现代应用的动态伸缩、微服务依赖…

作者头像 李华
网站建设 2026/6/7 18:01:20

Open-AutoGLM与Postman接口测试联动差异揭秘:掌握这3点让你效率翻倍

第一章&#xff1a;Open-AutoGLM与Postman接口测试联动差异揭秘在现代API开发与测试流程中&#xff0c;Open-AutoGLM与Postman作为两类典型工具&#xff0c;分别代表了智能语言模型驱动的自动化测试与传统手工接口调试的不同范式。两者在接口联动测试中的行为机制存在显著差异&…

作者头像 李华