Welcome to Subscribe On Youtube

Formatted question description: https://leetcode.ca/all/1304.html

1304. Find N Unique Integers Sum up to Zero (Easy)

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

Related Topics:
Array

Solution 1.

  • class Solution {
        public int[] sumZero(int n) {
            int[] array = new int[n];
            if (n == 1)
                array[0] = 0;
            else {
                if (n % 2 == 0) {
                    for (int i = 1; i < n; i += 2) {
                        array[i - 1] = -i;
                        array[i] = i;
                    }
                } else {
                    for (int i = 1; i < n; i += 2) {
                        array[i] = i;
                        array[i + 1] = -i;
                    }
                }
            }
            return array;
        }
    }
    
    ############
    
    class Solution {
        public int[] sumZero(int n) {
            int[] ans = new int[n];
            for (int i = 1; i < n; ++i) {
                ans[i] = i;
            }
            ans[0] = -(n * (n - 1) / 2);
            return ans;
        }
    }
    
  • // OJ: https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero/
    // Time: O(N)
    // Space: O(1)
    class Solution {
    public:
        vector<int> sumZero(int n) {
            vector<int> ans;
            if (n % 2) ans.push_back(0), --n;
            for (int i = 1; i <= n / 2; ++i) {
                ans.push_back(i);
                ans.push_back(-i);
            }
            return ans;
        }
    };
    
  • 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
    
    
    
  • func sumZero(n int) []int {
    	ans := make([]int, n)
    	for i := 1; i < n; i++ {
    		ans[i] = i
    	}
    	ans[0] = -n * (n - 1) / 2
    	return ans
    }
    
  • function sumZero(n: number): number[] {
        const ans = new Array(n).fill(0);
        for (let i = 1; i < n; ++i) {
            ans[i] = i;
        }
        ans[0] = -((n * (n - 1)) / 2);
        return ans;
    }
    
    

All Problems

All Solutions