leetcode 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 开始,一正一负地构造数组;如果 n 是奇数,则额外增加一个 0 再构造即可。
/*** Note: The returned array must be malloced, assume caller calls free().*/
int* sumZero(int n, int* returnSize) {int *ans=(int*)malloc(sizeof(int)*n);*returnSize=n;for(int i=0,t=1,f=0;i<n;){if(n&1&&!f)ans[0]=0,++i,f=1;else ans[i++]=t,ans[i++]=t*-1,t++;}return ans;
}