Solution of Find N Unique Integers 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

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值