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
Ideas of solving a problem
When we do this problem, we can start with negative Numbers.When n is odd, one of the digits is set to 0, and the remaining digits are radiated in both directions of the X-axis based on 0.So we can say that when n is even, these Numbers are negative.When n is odd, the negative number is created for n-1, and the Nth digit is set to 0. The time complexity is O(n), and the space complexity is O(1).
Code
package main
import (
"fmt"
)
func main(){
n :=1
fmt.Println(sumZero(n))
}
func sumZero(n int) []int {
arr:=[]int {}
if n==1{
arr=append(arr,0)
return arr
}
if n%2==0 {
temp := n / 2
for i := 0; i <= temp-1; i++ {
arr = append(arr, -(i + 1))
arr = append(arr, i+1)
}
return arr
}
temp := (n-1) / 2
for i:=0;i<=temp-1;i++ {
arr=append(arr,-(i+1) )
arr=append(arr,i+1)
}
arr= append(arr, 0)
return arr
}
链接:https://leetcode-cn.com/problems/find-n-unique-integers-sum-up-to-zero/
来源:力扣(LeetCode)