程式語言 - LeetCode - C - 238. Product of Array Except Self



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

題目:


解答:

int* productExceptSelf(int* nums, int numsSize, int* returnSize)
{
    int r = 0;
    int cc = 0;
    int *frd = malloc(sizeof(int) * numsSize);
    int *bkd = malloc(sizeof(int) * numsSize);

    frd[0] = 1;
    for (cc = 0; cc < (numsSize - 1); cc++) {
        frd[cc + 1] = frd[cc] * nums[cc];
    }

    bkd[numsSize - 1] = 1;
    for (cc = numsSize - 1; cc > 0; cc--) {
        bkd[cc - 1] = bkd[cc] * nums[cc];
    }

    *returnSize = numsSize;
    for (cc = 0; cc < numsSize; cc++) {
        nums[cc] = frd[cc] * bkd[cc];
    }
    free(frd);
    free(bkd);

    return nums;
}