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
Thinking
We need \(n\) distinct integers that sum to \(0\). Picking numbers at random and then adjusting them easily breaks uniqueness. A pair of opposite numbers already sums to \(0\), so we emit \(1,-1,\ldots,k,-k\). When \(n\) is odd we append \(0\), which preserves both the sum and distinctness.
We can start from \(1\) and alternately add positive and negative numbers to the result array. We repeat this process \(\frac{n}{2}\) 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)\).
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Solution 2: Construction + Mathematics
Thinking
Pairing must treat odd and even \(n\) separately. Placing \(1\) through \(n-1\) and appending the negation of their sum forces the total to \(0\), and that last value cannot equal any of those positive integers. The construction is shorter and still distinct.
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 \(-\frac{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)\).
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 | |