题目

给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0

示例 1:

1
2
3
输入:n = 5
输出:[-7,-1,1,3,4]
解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。

示例 2:

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
输入:n = 3
输出:[-1,0,1]
示例 3:

输入:n = 1
输出:[0]
``` 

**提示:**

+ `1 <= n <= 1000`
# 题解
## 思路
+ 题目是大水题
+ 就是生成一个长度为 n 的数组
+ 然后后半部分从 1 到 n//2 + 1
+ 前半部分从 -1 到 -(n//2 + 1)
+ 这里只是作为使用 numpy 的一个展示
+ 很多时候使用 numpy 来处理矩阵,列表可以显著加速

## 代码
```python
import numpy as np
class Solution:
def sumZero(self, n: int) -> List[int]:
a = np.zeros(n,dtype=np.int32)
a[(n+1)//2:] = np.arange(1,n//2 + 1)
a[:n//2] = np.arange(1,n//2 + 1) * -1
return a