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():