leetcode 1304. 和为零的N个唯一整数

【题目】1304. 和为零的N个唯一整数

给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。

示例 1:

输入:n = 5
输出:[-7,-1,1,3,4]
解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。

示例 2:

输入:n = 3
输出:[-1,0,1]

示例 3:

输入:n = 1
输出:[0]

提示:
1 <= n <= 1000

【解题思路1】

  • n为奇数:压入0,然后在压入互为相反数的数
  • n为偶数:从一开始就压入互为相反数的数
class Solution {
    public int[] sumZero(int n) {
		int[] ans = new int[n];
		int p = 0;
		if(n % 2 == 1) 
			ans[p++] = 0;
		for(int i = 1; i <= n / 2; i++) {
			ans[p++] = i;
			ans[p++] = -i;
		}
		return ans;
	}
}

以0为中心两边对称放相反数

class Solution {
    public int[] sumZero(int n) {
        int[] ans = new int[n];
        int index = 0;
        for (int i = 1; i <= n / 2; i++) {
            ans[index++] = -i;
            ans[index++] = i;
        }
        return ans;
    }
}

你可能感兴趣的:(Leetcode,/,Online,Judge)