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]
思路:双指针,前面加个数,后面就加个对应的负数;然后num++;
class Solution {
public int[] sumZero(int n) {
int[] res = new int[n];
int i = 0; int j = n - 1;
int num = 1;
while(i < j) {
res[i++] = num;
res[j--] = -num;
num++;
}
return res;
}
}
思路:前面继续加,最后一个数为-sum;
class Solution {
public int[] sumZero(int n) {
int[] res = new int[n];
int num = 1;
int sum = 0;
for(int i = 0; i < n - 1; i++) {
res[i] = num++;
sum += res[i];
}
res[n - 1] = -sum;
return res;
}
}