1304-和为零的 N 个不同整数
给你一个整数 n
,请你返回 **任意 **一个由 n
个 **各不相同 **的整数组成的数组,并且这 n
个数相加和为 0
。
示例 1:
**输入:** n = 5
**输出:** [-7,-1,1,3,4]
**解释:** 这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。
示例 2:
**输入:** n = 3
**输出:** [-1,0,1]
示例 3:
**输入:** n = 1
**输出:** [0]
提示:
1 <= n <= 1000
方法一:构造
我们首先将最小的 n - 1
个自然数 0, 1, 2, ..., n - 2
放入数组中,它们的和为 sum
。对于剩下的 1
个数,我们可以令其为 -sum
,此时这 n
个数的和为 0
,并且:
当
n = 1
时,我们构造的答案中只有唯一的1
个数0
;当
n > 1
时,我们构造的答案中包含n - 1
个互不相同的自然数和1
个负数;
因此这 n
个数互不相同,即我们得到了一个满足要求的数组。
1 | class Solution { |
1 | class Solution: |
复杂度分析
时间复杂度:O(N)。
空间复杂度:O(1),除了存储答案的数组
ans
之外,额外的空间复杂度是 O(1)。
Comments