Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 727 Bytes

Product of array except self.md

File metadata and controls

27 lines (19 loc) · 727 Bytes
vector<int> productExceptSelf(vector<int>& nums) {
        int n = nums.size();
        
        std::vector<int> prefix(n, 1);
        std::vector<int> suffix(n, 1);
        
        for (int i = 1; i < n; ++i) {
            prefix[i] = prefix[i - 1] * nums[i - 1];
        }
        
        for (int i = n - 2; i >= 0; --i) {
            suffix[i] = suffix[i + 1] * nums[i + 1];
        }
        
        std::vector<int> answer(n);
        for (int i = 0; i < n; ++i) {
            answer[i] = prefix[i] * suffix[i];
        }
        
        return answer;
    }