Skip to content

Latest commit

 

History

History
120 lines (89 loc) · 2.29 KB

File metadata and controls

120 lines (89 loc) · 2.29 KB

English Version

题目描述

给你一个整数 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

解法

Python3

class Solution:
    def sumZero(self, n: int) -> List[int]:
        presum = 0
        res = []
        for i in range(1, n):
            res.append(i)
            presum += i
        res.append(-presum)
        return res

Java

class Solution {
    public int[] sumZero(int n) {
        int preSum = 0;
        int[] ret = new int[n];
        for (int i = 1; i < n; ++i) {
            ret[i - 1] = i;
            preSum += i;
        }
        ret[n - 1] = -preSum;
        return ret;
    }
}

C++

class Solution {
public:
    vector<int> sumZero(int n) {
        int presum = 0;
        vector<int> res;
        for (int i = 1; i < n; ++i) {
            res.push_back(i);
            presum += i;
        }
        res.push_back(-presum);
        return res;
    }
};

Go

func sumZero(n int) []int {
	presum := 0
	var res []int
	for i := 1; i < n; i++ {
		res = append(res, i)
		presum += i
	}
	res = append(res, -presum)
	return res
}

...