您的位置:首页 > 其它

leetcode——238——Product of Array Except Self

2016-04-22 10:49 441 查看
Given an array of n integers where n > 1,
nums
, return an array
output
such that
output[i]
is equal to the product of all the elements of
nums
except
nums[i]
.
Solve it without division and in O(n).

For example, given
[1,2,3,4]
, return
[24,12,8,6]
.

设得到数组A[],需得到B[i] = A[0]*A[1]...*A[i-1]*A[i+1]*....A[n-1],令C[i] = A[0]*A[1]...*A[i-1],D[i] = A[i+1]*....A[n-1],可得C[i] = C[i-1]*A[i-1],D[i] = D[i+1]*A[i+1],

class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int n = nums.size();
vector<int> res(n,1);
res[n-1]=1;
for(int i = n-2;i>=0;i--)
{
res[i] = res[i+1] * nums[i+1];
}
int left = 1;
for(int i=0; i<n; i++) {
res[i] *= left;
left *= nums[i];
}
return res;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: