解法一
答案比较开放,在0的左右两侧分别取数即可满足题意。
class Solution {
public int[] sumZero(int n) {
int[] ans = new int[n];
int mid = (n - 1) / 2;
if (n % 2 == 1) {
ans[mid] = 0;
for (int i = 1; i <= n / 2; ++i) {
ans[mid - i] = -i;
ans[mid + i] = i;
}
} else {
for (int i = 1; i <= n / 2; ++i) {
ans[mid - i + 1] = -i;
ans[mid + i] = i;
}
}
return ans;
}
}