LC 1304.Find N Unique Integers Sum up to Zero

题目描述

这是 LeetCode 上的 1304. 和为零的 N 个不同整数 ,难度为简单

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 1 <= n <= 1000

解答

方法一:模拟

根据题目描述,用两个指针在数组两边填入相反数即可,因为数组初始化时会自动填入 0 ,所以不需要考虑奇偶,注意判断终止的条件为 i < j

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public int[] sumZero(int n) {
int[] res = new int[n];
int i = 0, j = n - 1, t = 1;
while (i < j) {
res[i++] = t;
res[j--] = -t;
++t;
}
return res;
}
}
  • 时间复杂度\(O(N)\),其中 Nres 的长度。

  • 空间复杂度\(O(1)\)

每题一图


LC 1304.Find N Unique Integers Sum up to Zero
https://chen-huaneng.github.io/2023/12/29/2023-12-29-2023-12-29-lc-1304/
作者
Abel
发布于
2023年12月29日
更新于
2023年12月29日
许可协议