參考資訊:
https://www.cnblogs.com/grandyang/p/8035551.html
題目:

解答:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize)
{
int i = 0;
int idx = 0;
int *r = calloc(10000, sizeof(int));
for (i = 0; i < asteroidsSize; i++) {
if (asteroids[i] > 0) {
r[idx++] = asteroids[i];
continue;
}
if ((idx == 0) || (r[idx - 1] < 0)) {
r[idx++] = asteroids[i];
continue;
}
if (abs(asteroids[i]) >= r[idx - 1]) {
if (abs(asteroids[i]) > r[idx - 1]) {
i -= 1;
}
idx -= 1;
}
}
*returnSize = idx;
return r;
}