Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i].
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
 
Please complete the following python code precisely:
```python
class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
```