文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个整数 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] 等等也都是可行的解。提示:
1 <= finalSum <= 10^10

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-split-of-positive-even-integers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:vector<long long> maximumEvenSplit(long long finalSum) {if(finalSum&1) return {};// 第一项 2, 第n项 2n, 求和// s = (2+2n)*n/2 = n*(n+1)long long x = sqrt(finalSum);long long s = x*(x+1);while(s < finalSum){x++;s = x*(x+1);}if(s > finalSum)x--;vector<long long> ans(x);s = 0;for(long long i = 0; i < ans.size(); ++i){ans[i] = (i+1)<<1;s += ans[i];}ans.back() += finalSum-s;//把多余的补充给最后一个数,肯定不重复return ans;}
};

156 ms 28.9 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2178. 拆分成最多数目的偶整数之和(等差数列求和)相关推荐

  1. LeetCode 2207. 字符串中最多数目的子字符串(前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母. 你可以在 tex ...

  2. LeetCode 11盛水最多的容器12整数转罗马数字

    目录 盛水最多的容器 题目描述 分析 整数转罗马数字 题目描述: 分析 结语 盛水最多的容器 公众号:bigsai,回复进群加入打卡,回复bigsai获取3GB的pdf资源.点赞再看,养成习惯! 题目 ...

  3. leetcode 371. Sum of Two Integers | 371. 两整数之和(补码运算)

    题目 https://leetcode.com/problems/sum-of-two-integers/ 题解 根据 related topics 可知,本题考察二进制运算. 第一次提交的时候,没想 ...

  4. LeetCode 842. 将数组拆分成斐波那契序列(暴力查找)

    1. 题目 给定一个数字字符串 S,比如 S = "123456579",我们可以将它分成斐波那契式的序列 [123, 456, 579]. 形式上,斐波那契式序列是一个非负整数列 ...

  5. leetcode 842. 将数组拆分成斐波那契序列(回溯算法)

    给定一个数字字符串 S,比如 S = "123456579",我们可以将它分成斐波那契式的序列 [123, 456, 579]. 形式上,斐波那契式序列是一个非负整数列表 F,且满 ...

  6. mysql 按日期拆分成多条记录_mysql性能优化2 设计规范 设计原则 结构优化 拆分 配置优化...

    一.MYSQL数据库设计规范 1.数据库命名规范 a.采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; b.命名简洁明确(长度不能超过30个字符); c.例如:us ...

  7. oracle按空格拆分列,DB2字符串按照指定符号进行拆分成多个字段的实现方式

    --假设我现在有这样一张表 create table test_col ( colt varchar(200) ); --假设表里面有这样的一些数据 insert into test_col sele ...

  8. UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理(c++实现)...

    一.字符编码简单介绍 1. ASCII码 在计算机内部,全部的信息终于都表示为一个二进制的字符串.每个二进制位(bit)有0和1两种状态,因此八个二进制位就能够组合出256种状态,这被称为一个字节(b ...

  9. 每天一道LeetCode-----将字符串拆分成有效的ip地址

    Restore IP Addresses 原题链接Restore IP Addresses 给定一个仅包含数字的字符串,将其拆分成有效的ip地址 题目的主要意思实际是在字符串中添加三个点,从而构成一个 ...

最新文章

  1. PHP Mysql 网站迁移,Linux+PHP+MySql网站迁移配置
  2. Unix哲学,Microservices和DDD (2)
  3. 社交电商风潮起,中小卖家何处去
  4. Verilog功能模块——符号位扩展
  5. python bind sock_python SOCKET编程详细介绍
  6. Pandas将列表(List)转换为数据框(Dataframe)
  7. java 标识变量_Java变量与数据类型之一:Java编程规范,关键字与标识符
  8. LED数码管结构与工作原理
  9. 移动固态硬盘(PSSD)怎么用?WTG随时随地封装系统
  10. 获取火山无水印视频方法
  11. 华硕P8H61-M+i3-3220 +GTX650
  12. mysql 页分裂_InnoDB中的页合并与分裂
  13. 最新DOS启动盘制作全攻略
  14. 浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解
  15. MongoDB Ubuntu安装 APP 支付宝微信支付
  16. MATLAB实现大家来找茬GUI程序
  17. 4十4十4写成乘法算式_乘法算式怎么写
  18. ClassNames
  19. Jmeter,Linux下执行./jmeter报错【./jmeter:Permission denied】
  20. linux 用户加入次要群组,linux学习笔记之 帐号和群组管理

热门文章

  1. leelen可视对讲怎么接线_楼宇对讲系统怎么布线 楼宇对讲系统布线方式【介绍】...
  2. python安装以及版本检测
  3. Django的信号机制详解
  4. Python中is与==的使用区别详解
  5. 关于用VS写C程序运行时出现烫字以及乱码的问题的原因
  6. 汇编为什么分段执行总是执行不了_iOS汇编教程(六)CPU 指令重排与内存屏障...
  7. Pytorch的BatchNorm层使用中容易出现的问题
  8. STM32的PA15、PB3、 PB4管脚作普通管脚的解决办法
  9. 时间操作(Java版)—获取给定日期N天后的日期
  10. django 模板继承与重写