blob: ef62b87b7b3a453aeed74cfb9f58a9629adaf0f9 (
plain) (
blame)
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
|
#include <stdlib.h>
#include <math.h>
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* constructTransformedArray(int* nums, int numsSize, int* returnSize) {
int* result = malloc(sizeof(int) * numsSize);
*returnSize = numsSize;
for(int i = 0; i < numsSize; i++) {
if (nums[i] == 0) {
result[i] = 0;
} else {
int j = (i + nums[i]) % numsSize;
if (j < 0) {
j += numsSize;
}
result[i] = nums[j];
}
}
return result;
}
|