您的位置:首页 > 其它

Product of Array Except Self

2016-06-22 11:44 204 查看
Product of Array Except Self:

O(n)时间复杂度,const额外存储空间,典型的用空间换时间的问题,之前遇到过一道求和的,这次变成求积了,原理一样,我们利用两个vector变量,先遍历一遍数组,vector1 每一个位置上存之前所有数字的乘积,再从后往前扫描,vector2 每个位置上存之后所有数字的乘积,最后在做一次循环,把vector1 和 vector2 对应位置上的数相乘,就是要求的数。

class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
vector<int> vec1 = { 1 };
vector<int> vec2 = {1};

vector<int> result;
int tmp = 1;
for (int cnt = 0; cnt<nums.size() - 1; cnt++)
{
tmp *= nums[cnt];
vec1.push_back(tmp);
}

tmp = 1;

for (int cnt = nums.size() - 1; cnt>0; cnt--)
{
tmp *= nums[cnt];
vec2.insert(vec2.begin(), tmp);
}
for (auto it1 = vec1.begin(), it2 = vec2.begin(); it1 != vec1.end(); it1++, it2++)
{
result.push_back((*it1)*(*it2));
}

return result;

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