class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
#if there were no time complexity restriction, you can use nested for loops and just continue if index of first for loop == index of second for loop
#if there were no divsion restriction, you can just find prod(nums) len(nums) times and divide by num[i] and append to result
res = [1] * len(nums)
prefix = 1
for i in range(len(nums)):
res[i] = prefix
prefix *= nums[i]
postfix = 1
for i in range(len(nums) - 1, -1, -1):
res[i] *= postfix
postfix *= nums[i]
return res
#must be in O(N) time, O(1) space, and not use divide operator
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter