1. 程式人生 > >Product of array except self

Product of array except self

Product of array except self

vector productExceptSelf(vector& nums) {

    int product = 1;
    //乘積從1 開始
    int zero_product = 1;
    //除0元素外的乘積

    int tmp;
    //存放output臨時的值

    vector<int> output;

    //對input的每個元素 求乘積
    for (int i = 0; i < nums.size(); i++) {

        product *= nums[i];

    }

    //對output的每個元素
    for (int i = 0; i < nums.size(); i++) {

        if (nums[i] != 0) {

            tmp = product / nums[i];

        }
        else {

            for (int j = 0; j < nums.size(); j++) {

                if (j != i) {

                    zero_product *= nums[j];

                }

            }

            tmp = zero_product;

        }

        //放入output陣列
        output.push_back(tmp);

    }

    return output;

}