1304. Find N Unique Integers Sum up to Zero
Given an integer n, return any array containing n unique integers such that they add up to 0.
Example 1:
Input: n = 5
Output: -7,-1,1,3,4
Explanation: These arrays also are accepted -5,-1,1,2,3 , -3,-1,2,-2,4.
Example 2:
Input: n = 3
Output: -1,0,1
Example 3:
Input: n = 1
Output: 0
Constraints:
- 1 <= n <= 1000
From: LeetCode
Link: 1304. Find N Unique Integers Sum up to Zero
Solution:
Ideas:
Pair each positive integer i with -i, and if n is odd, include 0.
Code:
c
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* sumZero(int n, int* returnSize) {
*returnSize = n;
int *ans = (int *)malloc(n * sizeof(int));
int idx = 0;
for (int i = 1; i <= n / 2; i++) {
ans[idx++] = i;
ans[idx++] = -i;
}
if (n % 2 == 1)
ans[idx] = 0;
return ans;
}