# 题目描述
给你一个整数 finalSum 。请你将它拆分成若干个 互不相同 的正偶数之和,且拆分出来的正偶数数目 最多
- 比方说,给你 
finalSum = 12,那么这些拆分是 符合要求 的(互不相同的正偶数且和为finalSum):(2 + 10) ,(2 + 4 + 6)和(4 + 8)。它们中,(2 + 4 + 6)包含最多数目的整数。注意finalSum不能拆分成(2 + 2 + 4 + 4),因为拆分出来的整数必须互不相同。 
请你返回一个整数数组,表示将整数拆分成 最多 数目的正偶数数组。如果没有办法将 finalSum 进行拆分,请你返回一个 空 数组。你可以按 任意 顺序返回这些整数。
提示:
1 <= finalSum <= 1010
# 测试用例
用例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 = 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]等等也都是可行的解 
# 实现思路
参考代码注释
# 代码实现
/**
 * @param {number} finalSum
 * @return {number[]}
 */
var __readline = require("readline-sync");
__readline.setDefaultOptions({ prompt: "" });
var readline = __readline.prompt;
console.log("请输入finalSum: ");
const finalSum = Number(readline());
var maximumEvenSplit = function (finalSum) {
  // 贪心
  if (finalSum % 2 == 1 || finalSum < 2) {
    return [];
  }
  // 按照偶数i从小到大的顺序去遍历,每次finalSum减去i,res放入i
  // 直到i > finalSum,表示此时finalSum剩下的数字不够此时的偶数了
  // 那就把此时的finalSum加到最后放入res的偶数上,作为res的最后一个偶数元素
  // 此时的res长度即为最大
  let res = [];
  for (let i = 2; i <= finalSum; i += 2) {
    res.push(i);
    finalSum -= i;
  }
  res[res.length - 1] += finalSum;
  return res;
};
const res = maximumEvenSplit(finalSum);
console.log("结果为: ", res);
/* 
  请输入finalSum:
  12
  结果为:  [ 2, 4, 6 ]
  请输入finalSum:
  28
  结果为:  [ 2, 4, 6, 16 ]
*/
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46