public int[] sumZero(int n) {
int [] Array= new int[n];
int sum=0; //前n-1个数之和
for(int i=0;i<Array.length-1;i++) {
Array[i] = i;
sum+=i;
}
Array[Array.length-1]=(0-sum);
return Array;
}

 Leetcode1304. Find N Unique Integers Sum up to Zero 随笔

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

 我这里是采取了一个取巧取值的办法 ,但是有没有办法可以随机取值并且最后也是等于0呢

 public int[] sumZero(int n) { int[] A = new int[n]; for (int i = 0; i < n; ++i) A[i] = i * 2 - n + 1; return A; }
这个solution是通过找对称性规律直接在Array[i]里赋相反值达到的效果


评论里提出我的代码n==2时返回的数组是{0,0},这违反了题目中的一致性。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄