Source: https://leetcode.com/problems/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
思路:偶数关于原点对称,奇数加上一个0
class Solution {
public:
vector<int> sumZero(int n) {
vector<int> ans(n);
if(n==1){
ans[0]=0;
return ans;
}
if(n%2==0){
for(int i=0;i<n/2;i++){
ans[i]=i+1;
}
for(int i=n/2;i<n;i++){
ans[i]=-ans[i-n/2];
}
return ans;
}
else{
ans[0]=0;
for(int i=1;i<=n/2;i++){
ans[i]=i;
}
for(int i=n/2+1;i<n;i++){
ans[i]=-ans[i-n/2];
}
return ans;
}
}
};
y625658683
发布了17 篇原创文章 · 获赞 0 · 访问量 405
私信
关注