程式語言 - LeetCode - C - 735. Asteroid Collision



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

題目:


解答:

int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize)
{
    int cc = 0;
    int idx = 0;
    int *r = malloc(sizeof(int) * asteroidsSize);

    for (cc = 0; cc < asteroidsSize; cc++) {
        if (asteroids[cc] > 0) {
            r[idx++] = asteroids[cc];
            continue;
        }

        if ((idx == 0) || (r[idx - 1] < 0)) {
            r[idx++] = asteroids[cc];
            continue;
        }

        if (r[idx - 1] <= abs(asteroids[cc])) {
            if (r[idx - 1] < abs(asteroids[cc])) {
                cc -= 1;
            }
            idx -= 1;
        }
    }

    *returnSize = idx;
    return r;
}