输入:A = [1, 2, 3]
输出:[6, 3, 2]
解释:B[0] = A[1] * A[2] = 6; B[1] = A[0] * A[2] = 3; B[2] = A[0] * A[1] = 2
//除自身以外数组的乘积
//左右互乘法
#include<stdlib.h>
int* productExceptSelf(int* nums) {
numsSize = cvector_size(nums);
int* ptr;
ptr = (int*)malloc(sizeof(int) * numsSize);
if (NULL == ptr)
{
perror("ptr == NULL!");
return 0;
}
int mul = 1;
int i = 0;
for (i = 0; i < numsSize; i++)
{
ptr[i] = mul;
mul *= nums[i];
}
mul = 1;
for (i = numsSize - 1; i >= 0; i--)
{
ptr[i] *= mul;
mul *= nums[i];
}
return ptr;
}