除自身以外数组的乘积
题目描述
给定一个长度为 n 的数组 nums ,返回一个数组 res,res[i]是nums数组中除了nums[i]本身以外其余所有元素的乘积,即:res[i] = nums[1] \times nums[2] \times …\times nums[i-1] \times nums[i+1] … \times nums[n] \res[i]=nums[1]×nums[2]×…×nums[i−1]×nums[i+1]…×nums[n]
前缀和
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型vector
*/
vector<int> timesExceptSelf(vector<int>& nums) {
// write code here
int count;
count=nums.size();
vector<int> lx(count,1);
vector<int> rx(count,1);
vector<int> res(count,1);
for(int i=1;i<count;i++){
lx[i]=lx[i-1]*nums[i-1];
}
for(int i=count-2;i>=0;i--){
rx[i]=rx[i+1]*nums[i+1];
}
for(int i=0;i<count;i++){
res[i]=lx[i]*rx[i];
}
return res;
}
};