(LeetCode 每日一题)1304. 和为零的 N 个不同整数(数组)
题目:1304. 和为零的 N 个不同整数
思路:n为奇数时,加入一个0,变为偶数个。接着成对使用不同的相反数即可(-1,1)
C++版本:
class Solution {
public:vector<int> sumZero(int n) {vector<int> v;if(n%2==1){v.push_back(0);n--;}for(int i=1;n>0;i++){n-=2;v.push_back(i);v.push_back(-1*i);}return v;}
};
JAVA 版本:
class Solution {public int[] sumZero(int n) {int[] v=new int[n];int id=0;if(n%2==1){v[id++]=0;n--;}for(int i=1;n>0;i++){n-=2;v[id++]=i;v[id++]=-1*i;}return v;}
}
GO版本:
func sumZero(n int) []int {v:=make([]int,n)id:=0if n%2==1 {v[id]=0id++n--}for i:=1;n>0;i++ {n-=2v[id]=iid++v[id]=-1*iid++}return v
}