【題目】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
【解題思路1】
- n爲奇數:壓入0,然後在壓入互爲相反數的數
- n爲偶數:從一開始就壓入互爲相反數的數
class Solution {
public int[] sumZero(int n) {
int[] ans = new int[n];
int p = 0;
if(n % 2 == 1)
ans[p++] = 0;
for(int i = 1; i <= n / 2; i++) {
ans[p++] = i;
ans[p++] = -i;
}
return ans;
}
}
以0爲中心兩邊對稱放相反數
class Solution {
public int[] sumZero(int n) {
int[] ans = new int[n];
int index = 0;
for (int i = 1; i <= n / 2; i++) {
ans[index++] = -i;
ans[index++] = i;
}
return ans;
}
}