1 题目描述
给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。
2 示例描述
2.1 示例 1
输入:n = 5
输出:[-7,-1,1,3,4]
解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。
2.2 示例 2
输入:n = 3
输出:[-1,0,1]
2.3 示例 3
输入:n = 1
输出:[0]
3 解题提示
1 <= n <= 1000
4 解题思路
简单的题目的取巧做法,官方题解下,的外层循环是有点小错误的,但是如果改成从1开始的话,最后一个数绝对是负数的,所以是可行的,取消做法。
5 源码详解(C++)
class Solution {
public:
vector<int> sumZero(int n) {
vector<int> res ;
int sum = 0 ;
for ( int i = 1 ; i < n ; i ++ )
{
res.push_back( i );
sum = sum + i ;
}
res.push_back( -sum );
return res ;
}
};