<reponame>niki4/leetcode_py3
"""
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
"""
from typing import List


class Solution:
    def sumZero(self, n: int) -> List[int]:
        if n == 1:
            return [0]

        result = [] if n % 2 == 0 else [0]

        for i in range(1, (n // 2) + 1):
            result += [i, -i]

        return result


if __name__ == '__main__':
    tc = (
        5,
        3,
        1
    )
    solutions = (
        Solution(),
    )
    for sol in solutions:
        for inp_n in tc:
            res = sol.sumZero(inp_n)
            assert len(res) == len(set(res)), f"{res} contain duplicated nums"
            assert sum(res) == 0, f"{res} doesn't 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
"""
from typing import List


class Solution:
    def sumZero(self, n: int) -> List[int]:
        if n == 1:
            return [0]

        result = [] if n % 2 == 0 else [0]

        for i in range(1, (n // 2) + 1):
            result += [i, -i]

        return result


if __name__ == '__main__':
    tc = (
        5,
        3,
        1
    )
    solutions = (
        Solution(),
    )
    for sol in solutions:
        for inp_n in tc:
            res = sol.sumZero(inp_n)
            assert len(res) == len(set(res)), f"{res} contain duplicated nums"
            assert sum(res) == 0, f"{res} doesn't 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