product_of_array_except_self

 1# @leet start
 2class Solution:
 3    def productExceptSelf(self, nums: list[int]) -> list[int]:
 4        prefix = [nums[0]]
 5        for num in nums[1:]:
 6            prefix.append(prefix[-1] * num)
 7
 8        suffix = [nums[-1]]
 9        for num in list(reversed(nums))[1:]:
10            suffix.append(suffix[-1] * num)
11        suffix.reverse()
12
13        res = []
14        for i, num in enumerate(nums):
15            prefix_index = i - 1
16            suffix_index = prefix_index + 2
17
18            total = 1
19
20            if 0 <= prefix_index < len(nums):
21                total *= prefix[prefix_index]
22            if 0 <= suffix_index < len(nums):
23                total *= suffix[suffix_index]
24
25            res.append(total)
26
27        return res
28
29
30# @leet end
31
32
33def test():
34    assert 2 + 2 == 4
class Solution:
 3class Solution:
 4    def productExceptSelf(self, nums: list[int]) -> list[int]:
 5        prefix = [nums[0]]
 6        for num in nums[1:]:
 7            prefix.append(prefix[-1] * num)
 8
 9        suffix = [nums[-1]]
10        for num in list(reversed(nums))[1:]:
11            suffix.append(suffix[-1] * num)
12        suffix.reverse()
13
14        res = []
15        for i, num in enumerate(nums):
16            prefix_index = i - 1
17            suffix_index = prefix_index + 2
18
19            total = 1
20
21            if 0 <= prefix_index < len(nums):
22                total *= prefix[prefix_index]
23            if 0 <= suffix_index < len(nums):
24                total *= suffix[suffix_index]
25
26            res.append(total)
27
28        return res
def productExceptSelf(self, nums: list[int]) -> list[int]:
 4    def productExceptSelf(self, nums: list[int]) -> list[int]:
 5        prefix = [nums[0]]
 6        for num in nums[1:]:
 7            prefix.append(prefix[-1] * num)
 8
 9        suffix = [nums[-1]]
10        for num in list(reversed(nums))[1:]:
11            suffix.append(suffix[-1] * num)
12        suffix.reverse()
13
14        res = []
15        for i, num in enumerate(nums):
16            prefix_index = i - 1
17            suffix_index = prefix_index + 2
18
19            total = 1
20
21            if 0 <= prefix_index < len(nums):
22                total *= prefix[prefix_index]
23            if 0 <= suffix_index < len(nums):
24                total *= suffix[suffix_index]
25
26            res.append(total)
27
28        return res
def test():
34def test():
35    assert 2 + 2 == 4