diff --git a/LeetCode/medium/product_except_self_238.py b/LeetCode/medium/product_except_self_238.py index 3bfbeb9..9ba6fc8 100644 --- a/LeetCode/medium/product_except_self_238.py +++ b/LeetCode/medium/product_except_self_238.py @@ -9,29 +9,17 @@ def productExceptSelf(self, nums: List[int]) -> List[int]: output = [] # find the prefix first - for index in range(nums_len): - if index == 0: - prefix[index] = nums[index] - elif index < nums_len: - prefix[index] = nums[index] * prefix[index - 1] + prefix[0] = 1 + for index in range(1, nums_len): + prefix[index] = nums[index - 1] * prefix[index - 1] # find the postfix - for index in range(nums_len, 0, -1): - - if index == nums_len: - postfix[index - 1] = nums[index - 1] - else: - postfix[index - 1] = nums[index - 1] * postfix[index] + postfix[-1] = 1 + for index in range(nums_len - 2, -1, -1): + postfix[index] = nums[index + 1] * postfix[index + 1] # now find the output for index in range(nums_len): - if index == 0: - # with index 0 there aren't any prefix - output.append(postfix[index + 1]) - elif index == nums_len - 1: - # last element so no postfix - output.append(prefix[index - 1]) - else: - output.append(prefix[index - 1] * postfix[index + 1]) + output.append(prefix[index] * postfix[index]) return output