aboutsummaryrefslogtreecommitdiff
path: root/find_n_unique_int_sum_0.c
blob: d08bbd43fd2168abdc6d4857022e9e8ab681249b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 1304. Find N Unique Integers Sum up to Zero
#include "leetcode.h"

/*
 * given an integer 'n', return any array containing 'n' unique integers such
 * that they add up to 0.
 */

int *sumZero(int n, int *returnSize) {
  int *ans = (int *)malloc(n * sizeof(int));
  *returnSize = n;
  for (int i = 0; i < n; ++i)
    ans[i] = i * 2 - n + 1;
  return ans;
}

int main() {
  int rs1, *sz1 = sumZero(5, &rs1);
  int rs2, *sz2 = sumZero(3, &rs2);
  int rs3, *sz3 = sumZero(1, &rs3);
  for (int i = 0; i < rs1; i++)
    printf("%d ", sz1[i]); // expect: -7 -1 1 3 4
  printf("\n");
  for (int i = 0; i < rs2; i++)
    printf("%d ", sz2[i]); // expect: -1 0 1
  printf("\n");
  for (int i = 0; i < rs3; i++)
    printf("%d ", sz3[i]); // expect: 0
  printf("\n");
  free(sz1);
  free(sz2);
  free(sz3);
}