description

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

submission

impl Solution {
    // another solution would be [1, n] and -n(n+1)/2
    pub fn sum_zero(n: i32) -> Vec<i32> {
        // collect [-n/2, n/2]
        (-(n / 2)..=(n / 2))
            // filter out 0 if n is even
            .filter(|&i| n % 2 == 1 || i != 0)
            .collect()
    }
}