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

第 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; } }
http://www.cnnetsun.cn/news/174359.html

相关文章:

  • 【权威对比】Open-AutoGLM与Parasoft SOAtest集成能力评测:数据背后的真相
  • eDiary电子日记本(记录生活点滴)
  • Thinkphp和Laravel+vue好未来团购网系统vue
  • Open-AutoGLM vs SoapUI:谁才是自动化测试协同的终极利器?
  • Android ---【经验篇】项目上线前工序:部署 SpringBoot 项目(二)
  • 还在盲目集成测试工具?Open-AutoGLM与SOAtest的6个致命区别你必须知道
  • 基于springboot+vue的Web的出租车拼车系统(源码+lw+部署文档+讲解等)
  • 基于springboot+vue的Vue和SpringBoot的城市环保行政执法系统(源码+lw+部署文档+讲解等)
  • 基于VUE的教师培训在线管理平台[VUE]-计算机毕业设计源码+LW文档
  • 【自动化测试平台选型避坑指南】:从Open-AutoGLM到Tosca的7项适配指标实测对比
  • Open-AutoGLM vs JMeter:性能测试如何选择?3大维度全面解析
  • Open-AutoGLM 与 BrowserStack 兼容性对比(稀缺内部数据首次公开)
  • Open-AutoGLM与Sauce Labs兼容性深度剖析:90%团队忽略的4个核心参数
  • 【前端自动化测试避坑指南】:Open-AutoGLM与Cypress在移动端的真实表现对比
  • 【AI测试工具新标杆】:Open-AutoGLM如何以0.1ms响应精度碾压Ranorex?
  • Open-AutoGLM 与 Playwright 到底怎么选?:3大核心维度全面测评,90%的人都忽略了这一点
  • 【顶级测试架构师亲授】:Open-AutoGLM对接Sauce Labs的7步完美适配法
  • 大数据时代MongoDB的性能瓶颈与解决办法
  • 【Open-AutoGLM vs Applitools】:谁才是视觉测试的终极王者?
  • 【专家亲测】Open-AutoGLM与UiPath操作复杂度全面拆解(含学习曲线数据)
  • Open-AutoGLM vs WinAutomation:高并发场景下谁更稳定?(实测结果曝光)
  • 为什么你的自动化项目失败了?Open-AutoGLM与Power Automate适配性全剖析
  • Thinkphp和Laravel框架社区物业车位缴费房屋充电桩管理系统 论文
  • 你真的了解Open-AutoGLM与Katalon Studio的适配边界吗?
  • 【测试工程师必看】Open-AutoGLM与Katalon Studio适配差异的5大关键点
  • 【自动化平台选型避坑指南】:Open-AutoGLM与Power Automate 6大场景实测对比
  • Vue3+TypeScript+Element-Plus确认对话框ElMessageBox.confirm
  • 企业流程自动化怎么选,Open-AutoGLM和Power Automate到底差在哪?
  • 为什么99%的人没发挥Open-AutoGLM全部潜力?,解锁隐藏的动态权重调优功能
  • 批量打印神器,太流批了