Leetcode每日一练--22
给你一个整数 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
代码
#include <stdlib.h>int* sumZero(int n, int* returnSize) {int* result = (int*)malloc(sizeof(int) * n);*returnSize = n;if (n % 2 == 1) { // 奇数情况int k = (n - 1) / 2;for (int i = 0; i < n; i++) {result[i] = i - k; // 填充从 -k 到 k}} else { // 偶数情况int k = n / 2;int index = 0;for (int i = -k; i <= k; i++) {if (i == 0) continue; // 跳过0result[index++] = i;}}return result;
}