返回介绍

solution / 1300-1399 / 1304.Find N Unique Integers Sum up to Zero / README_EN

发布于 2024-06-17 01:03:21 字数 3628 浏览 0 评论 0 收藏 0

1304. Find N Unique Integers Sum up to Zero

中文文档

Description

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

Solutions

Solution 1

class Solution:
  def sumZero(self, n: int) -> List[int]:
    ans = []
    for i in range(n >> 1):
      ans.append(i + 1)
      ans.append(-(i + 1))
    if n & 1:
      ans.append(0)
    return ans
class Solution {
  public int[] sumZero(int n) {
    int[] ans = new int[n];
    for (int i = 1, j = 0; i <= n / 2; ++i) {
      ans[j++] = i;
      ans[j++] = -i;
    }
    return ans;
  }
}
class Solution {
public:
  vector<int> sumZero(int n) {
    vector<int> ans(n);
    for (int i = 1, j = 0; i <= n / 2; ++i) {
      ans[j++] = i;
      ans[j++] = -i;
    }
    return ans;
  }
};
func sumZero(n int) []int {
  ans := make([]int, n)
  for i, j := 1, 0; i <= n/2; i, j = i+1, j+1 {
    ans[j] = i
    j++
    ans[j] = -i
  }
  return ans
}
function sumZero(n: number): number[] {
  const ans = new Array(n).fill(0);
  for (let i = 1, j = 0; i <= n / 2; ++i) {
    ans[j++] = i;
    ans[j++] = -i;
  }
  return ans;
}

Solution 2

class Solution:
  def sumZero(self, n: int) -> List[int]:
    ans = list(range(1, n))
    ans.append(-sum(ans))
    return ans
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;
  }
}
class Solution {
public:
  vector<int> sumZero(int n) {
    vector<int> ans(n);
    iota(ans.begin(), ans.end(), 1);
    ans[n - 1] = -(n - 1) * n / 2;
    return ans;
  }
};
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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文