LeetCode 1304. Find N Unique Integers Sum up to Zero Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
1304. Find N Unique Integers Sum up to Zero

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

Solutions

Solution 1: Construction

We can start from 1 and alternately add positive and negative numbers to the result array. We repeat this process n2 times. If n is odd, we add 0 to the result array at the end.

The time complexity is O(n), where n is the given integer. Ignoring the space used for the answer, the space complexity is O(1).

PythonJavaC++GoTypeScriptRust
class Solution: def sumZero(self, n: int) -> List[int]: ans = [] for i in range(n >> 1): ans.append(i + 1) ans.append(-(i + 1)) if n & 1: ans.append(0) return ans(code-box)

Solution 2: Construction + Mathematics

We can also add all integers from 1 to n-1 to the result array, and finally add the opposite of the sum of the first n-1 integers, which is -n(n-1)2, to the result array.

The time complexity is O(n), where n is the given integer. Ignoring the space used for the answer, the space complexity is O(1).

PythonJavaC++GoTypeScriptRust
class Solution: def sumZero(self, n: int) -> List[int]: ans = list(range(1, n)) ans.append(-sum(ans)) return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !