您的位置:首页 > 其它

Product of Array Except Self

2015-07-16 10:57 204 查看
For example, given
[1,2,3,4]
,
return
[24,12,8,6]
.
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {

int zerocount=0;
int multi=1;
int zeroflag;
for(int i=0;i<nums.size();i++){
if(nums[i]==0) {zerocount++;if(zerocount>1) break;zeroflag=i;}
else multi*=nums[i];
}
if(zerocount>1) {vector<int>output(nums.size(),0);return output;}
if(zerocount==1) {vector<int>output(nums.size(),0);output[zeroflag]=multi;return output;}
else{
vector<int>output(nums.size(),0);
for(int j=0;j<nums.size();j++){
output[j]=multi/nums[j];
}
return output;
}
}
};
class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        vector<int> res(nums.size(), 1);
        for (int i = nums.size()-2; i >=0; --i) {
            res[i] = res[i + 1] * nums[i + 1];
        }
        int left = 1;
        for (int i = 0; i <= nums.size()-1; ++i) {
            res[i] *= left;
            left *= nums[i];
        }
        return res;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: