题目:
题解:
// 数组中除自身以外元素的乘积
int* productExceptSelf(int* nums, int numsSize, int* returnSize) {
static int ra[100000]; // 结果数组
for (int i = 0; i < numsSize; i++) {
ra[i] = 1; // 初始化结果数组为1
}
int pre = 1, suf = 1; // 前缀和后缀乘积初始化为1
for (int i = 1; i < numsSize; i++) {
pre *= nums[i - 1]; // 计算前缀乘积
suf *= nums[numsSize - i]; // 计算后缀乘积
ra[i] *= pre; // 更新结果数组
ra[numsSize - i - 1] *= suf; // 更新结果数组
}
*returnSize = numsSize; // 设置返回数组大小
return ra; // 返回结果数组
}