LeetCode 每日一题——2178. 拆分成最多数目的正偶数之和

news2024/11/25 3:06:16

1.题目描述

2178. 拆分成最多数目的正偶数之和

给你一个整数 finalSum 。请你将它拆分成若干个 互不相同 的正偶数之和,且拆分出来的正偶数数目 最多 。

比方说,给你 finalSum = 12 ,那么这些拆分是 符合要求 的(互不相同的正偶数且和为 finalSum):(2 + 10) ,(2 + 4 + 6) 和 (4 + 8) 。它们中,(2 + 4 + 6) 包含最多数目的整数。注意 finalSum 不能拆分成 (2 + 2 + 4 + 4) ,因为拆分出来的整数必须互不相同。
请你返回一个整数数组,表示将整数拆分成 最多 数目的正偶数数组。如果没有办法将 finalSum 进行拆分,请你返回一个 空 数组。你可以按 任意 顺序返回这些整数。

示例 1:

输入:finalSum = 12
输出:[2,4,6]
解释:以下是一些符合要求的拆分:(2 + 10),(2 + 4 + 6) 和 (4 + 8) 。

(2 + 4 + 6) 为最多数目的整数,数目为 3 ,所以我们返回 [2,4,6] 。
[2,6,4] ,[6,2,4] 等等也都是可行的解。
示例 2:

输入:finalSum = 7
输出:[]
解释:没有办法将 finalSum 进行拆分。

所以返回空数组。
示例 3:

输入:finalSum = 28
输出:[6,8,2,12]
解释:以下是一些符合要求的拆分:(2 + 26),(6 + 8 + 2 + 12) 和 (4 + 24) 。

(6 + 8 + 2 + 12) 有最多数目的整数,数目为 4 ,所以我们返回 [6,8,2,12] 。
[10,2,4,12] ,[6,2,4,16] 等等也都是可行的解。

2.解题思路与代码

2.1 解题思路

比较简单的一道题,首先如果给的是奇数那么直接返回空列表,因为奇数无法由偶数组成。

然后从2开始一直加2进行计算,然后用和与该数相减,出现下面几种情况

  • 如果当前数大于剩余的和,说明当前数再加2也无法满足剩余和等于0的条件,直接让剩下的和与列表最后一位相加放入列表中
  • 如果当前数小于等于剩余的和,则当前数放入结果列表,并剩余和减去当前数作为下一轮的剩余和,然后当前数再次加2

2.2 代码

class Solution {
    public List<Long> maximumEvenSplit(long finalSum) {
        List<Long> ans = new ArrayList<>();
        if (finalSum % 2 == 1) {
        return ans;
        }
        long curr = 2;
        while (finalSum >= curr) {
        ans.add(curr);
        finalSum -= curr;
        curr += 2;
        }
        if (finalSum > 0) {
        finalSum += ans.get(ans.size() - 1);
        ans.remove(ans.size() - 1);
        ans.add(finalSum);
        }
        return ans;

    }
}

2.3 测试结果

通过测试

3.总结

  • 一直加2进行尝试,保证都是偶数
  • 剩余和小于当前数时,让剩余和加上列表最后一位即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 中的服务发现

Spring Boot 中的服务发现 Spring Boot 是一个非常流行的 Java Web 开发框架&#xff0c;它提供了很多工具和组件来简化 Web 应用程序的开发。其中&#xff0c;服务发现是 Spring Boot 中的一个非常重要的组件&#xff0c;它可以帮助我们自动地发现和管理应用程序中的服务。 什…

Prometheus 时序数据

一 时序索引 Prometheus 存储的是时序数据&#xff0c;时间戳&#xff08;timestamp&#xff09;来源于服务端本地的系 统时间。Prometheus 使用 Unix 时间戳&#xff08;即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数&#xff09;表示时间。 数 据 格 式 &#xff1a; …

C#核心知识回顾——10.List、Dictionary、数据结构、LinkedList

1.List List<int> list new List<int>(); List<String> strings new List<String>();//增list.Add(0);list.Add(1);List<int> ints new List<int>();ints.Add(0);list.AddRange(ints);//插入list.Insert(0, 1);// 位置0插入1//删//1.移…

Java内存模型—工作流程、volatile原理

导入 最近在做项目的时候发现很多业务上用到了多线程&#xff0c;通过多线程去提升程序的一个运行效率&#xff0c;借此机会来复盘一下关于并发编程的相关内容。为什么要使用volatile&#xff1f;volatile底层原理是什么&#xff1f;JMM内存模型解决的是什么问题&#xff1f;带…

基于 OpenCV 开发实现眨眼计数器

文末提供免费的源代码下载链接 在本教程中,我们将了解如何使用 Dlib、Python 和 OpenCV 创建眨眼检测器/计数器。 我们将首先使用 Dlib 的人脸检测器来检测视频中的人脸。然后我们将使用 Dlib 中的形状预测器来确定眼睛在面部的位置。 最后,我们将使用眼睛的标志来计算眼睛…

小白必看:这些项目可以让你轻松月入过万

月入五W的互联网副业野路子。总有一个适合你!刷到这篇回答的。就不要在看其他的了。 这些互联网项目你也能做 1、认识个哥们&#xff0c;每天去一些热门的寺庙拍视频开直播&#xff0c;帮人代请手串&#xff0c;每串赚15元&#xff0c;月入5万多&#xff0c;非常非常稳定。 2…

基于SpringBoot+vue的口腔管家平台设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Image Sensor的像素时钟计算

本文介绍Image Sensor的像素时钟计算。 在配置Image Sensor寄存器的过程中&#xff0c;像素时钟至关重要&#xff0c;它的正确设置关系到帧率&#xff0c;曝光参数的正确与否。我们从相关资料中了解到像素时钟有多种方法&#xff0c;究竟该选择哪一种呢&#xff0c;本文来对常…

【C++】函数绑定器技术

1. 函数绑定器技术&#xff0c;什么情况可以用到这种技术实现? 占位符和函数绑定器技术&#xff08;如std::bind&#xff09;可以在以下情况下使用&#xff1a; 参数绑定&#xff1a;当你想要绑定函数的某些参数&#xff0c;但又不想立即提供这些参数的值时&#xff0c;可以…

在idea中使用Git技术

1.配置git环境 打开idea,点击file->setting->搜索git&#xff0c; 将git的安装路径填写进去 2.去gitee创建一个远程仓库 3.拉入一个.gitignore文件&#xff0c;过滤掉不需要管理的文件 4.在idea进行如下操作 5.选择要提交的内容 目前只是保存在了本地仓库 6.推送到远端…

简单尝试将go项目用宝塔部署到服务器

最近写了一个go项目的小demo打算放到服务器上&#xff0c;但是中间遇到一些问题&#xff0c;这里我记录下&#xff1a; 一、找一个文件夹将打包后的go项目放进去&#xff0c;如图 二、安装执行exe文件的wine 终端执行命令 yum install wine 终端在这&#xff0c;如图&#xf…

macOS Sonoma 14 beta 3 (23A5286g) Boot ISO 原版可引导镜像下载

macOS Sonoma 14 beta 3 (23A5286g) Boot ISO 原版可引导镜像&#xff0c;7 月 5 日&#xff08;北京时间今日凌晨&#xff09;已发布 本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U…

从0开始学架构-架构的定义

从0开始学架构-架构的定义 文章目录 从0开始学架构-架构的定义系统与子系统模块与组件框架与架构软件框架&#xff08;Software framework&#xff09;软件架构区别 重新定义架构&#xff1a;4R 架构软件架构重新定义 三组容易混淆的概念&#xff1a; 系统与子系统模块与组件框…

文档翻译器那么多,你知道文档翻译pdf哪个软件好吗?

曾经有一个年轻的学生&#xff0c;名叫小杰。他是一名热爱学习的人&#xff0c;对于跨文化交流和学习外语充满了好奇和热情。然而&#xff0c;他在阅读一些重要的学术论文和研究资料时&#xff0c;常常遇到一个令人头痛的问题&#xff1a;如何将外文的pdf文档准确地翻译成自己的…

小白必看!关于欧盟商标注册须知事项?

一、什么是欧盟商标&#xff1f; 答&#xff1a; 欧盟商标是指根据CTMR&#xff08;欧共体商标条例&#xff09;规定的条件获得OHIM&#xff08;欧共体内部市场协调局&#xff09;注册的&#xff0c;在欧盟范围内有效的&#xff0c;用来识别和区分商品或服务的标记。 二、欧盟…

【前端面试专栏】<script> 脚本以及 <link> 标签对 DOM 的影响

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

解决方法:python: not found问题

一、问题 测试环境&#xff1a;Ubuntu22.04.1 在运行一些脚本文件的时候&#xff0c;报以下错误&#xff1a; ./build.sh: python: not found二、原因 python 可能被 python2 或者 python 3 代替了导致映射不到。 三、解决方法 查看所有的 python 映射 ls -l /usr/bin/py…

现代化个人博客系统 ModStartBlog v7.7.0 博客关键词优化,附件上传重构

现代化个人博客系统 ModStartBlog v7.7.0 博客关键词优化&#xff0c;附件上传重构 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基…

【电路原理学习笔记】第2章:电压、电流和电阻:2.5 电阻

第2章&#xff1a;电压、电流和电阻 2.5 电阻 当固体导体中有电流时&#xff0c;自由电子在该材料中运动&#xff0c;有时会与原子发生碰撞。这些碰撞使电子失去一些能量&#xff0c;因此它们的运动会受到限制。碰撞越多&#xff0c;电子的流动就越受限制。这一限制因材料类型…

基于Java+Swing+mysql实现垃圾分类管理系统

基于JavaSwingmysql实现垃圾分类管理系统 一、系统介绍二、功能展示1.登陆2.社区管理3.设备管理4.垃圾管理 三、其它1.其他系统实现2.获取源码 一、系统介绍 该系统实现了 管理员:系统登陆、社区管理、设备管理、垃圾管理 小区负责人&#xff1a;查看垃圾分类信息、垃圾站信息…