题目描述 :
给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。
提示:1 <= n <= 1000
示例 1:
输入:n = 5
输出:[-7,-1,1,3,4]
解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。
示例 2:
输入:n = 3
输出:[-1,0,1]
解释:利用关于0对称和为0的性质,当n为奇数时即求[-n/2,n/2]的和(包含0),当n为偶数时即求[-n/2,n/2](不含0)
代码如下:
class Solution {
public:
vector<int> sumZero(int n) {
vector<int>v;
int m=n/2;
if(n%2!=0){
for(int i=-m;i<=m;i++){
v.push_back(i);
}
}
else{
for(int i=-m;i<=m;i++){
if(i!=0){
v.push_back(i);
}
}
}
return v;
}
};
执行结果: