leetcode 238. Product of Array Except Self

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 ofnums except nums[i].

Solve it without division and in O(n).

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


這道題主要是不能用除法(用除法要判斷除數是否爲零,以及幾個零),所以維持兩個數組,一個表示左邊的積一個表示右邊的積。

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






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章