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

贪心算法(17)(java)可被三整除的最大整数和

给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和

示例 1:

输入:nums = [3,6,5,1,8]
输出:18
解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。

示例 2:

输入:nums = [4]
输出:0
解释:4 不能被 3 整除,所以无法选出数字,返回 0。

示例 3:

输入:nums = [1,2,3,4,4]
输出:12
解释:选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。j

解法:正难则反+贪心+分类讨论

public class Solution {
    public  int maxSumDivThree(int[] nums)
    {
        int INF=0x3f3f3f3f;
        int sum =0,x1 =INF,x2=INF,y1=INF,y2=INF;
        for (int x:nums)
        {
            sum+=x;
            if (x%3==1)
            {
                if (x<x1)
                {
                    x2=x1;
                    x1=x;

                }
                else  if(x<=2)
                {
                    x2=x;
                }
            }
            else if (x%3==2)
            {
                if (x<y1)
                {
                    y2=y1;
                    y1=x;
                }
                else if (x<y2)
                {
                    y2=x;
                }
            }
        }
        //分类讨论
        if (sum%3==0)return sum;
        else if (sum%3==1)return Math.max(sum-x1,sum-y1-y2);
        else return Math.max(sum-y1,sum-x1-x2);
    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        int[]nums={3,6,5,1,8};
        System.out.println(solution.maxSumDivThree(nums));
    }
}

http://www.dtcms.com/a/121955.html

相关文章:

  • [CISSP] [9] 安全漏洞,威胁和对策
  • 视觉分析AI赋能智慧水务多场景应用
  • S32K144的m_data_2地址不够存,重新在LD文件中配置地址区域
  • doxygen自动生成文档,注释容易错位的补充
  • 雷电模拟器过检测技术全解析
  • 使用docker 安装向量数据库Milvus
  • 黑马 SpringAI+DeepSeek 实战:从对话机器人到企业级知识库的大模型开发全攻略
  • <《AI大模型应知应会100篇》第8篇:大模型的知识获取方式及其局限性
  • package.json配置项积累
  • 防火墙介绍
  • SpringMvc的请求-获得请求参数
  • 启山智软的营销方法有哪些优势?
  • 大数据(7)Kafka核心原理揭秘:从入门到企业级实战应用
  • 机器学习 Day10 逻辑回归
  • 设计模式 Day 5:夯实观察者模式(Boost 实战精讲)
  • excel中的VBA指令示例(二)
  • 【Java】Java 中不同类型的类详解
  • 【PVR】《Palm Vein Recognition and Large-scale Research based on Deep Learning》
  • 今日行情明日机会——20250409
  • P9242 [蓝桥杯 2023 省 B] 接龙数列
  • Anacond虚拟环境里安装GPU版本Pytorch
  • linux下截图工具的选择
  • Linux权限管理:从入门到实践
  • 网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看
  • 算法训练之动态规划(一)
  • 为什么在Altium原理图中画线会自动链接到附近?
  • Zephyr、FreeRTOS、RT-Thread 定时器区别分析
  • 【Ragflow】14.MinerU解析脚本,接入ragflow知识库
  • Windows 图形显示驱动开发-WDDM 2.0功能_供应和回收更改
  • Seq2Seq - GRU补充讲解