Product_of_array_expect_self - stachulemko/doc GitHub Wiki
Product_of_array_expect_self
podstawowa = |1|2|3|4|
num1 = |1|2|6|24|
num2 = |24|24|12|4|
podstawowa[1]:
wynik =num1[1-1]*num1[1+1]
wynik=1*12
from typing import List
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
answer = []
if len(nums) == 2:
# Jeśli jest tylko 2 elementy, zwracamy odwróconą tablicę
return [nums[1], nums[0]]
tab1 = []
licznik1 = 1
tab2 = []
licznik2 = 1
# Tworzenie tablicy iloczynów z przodu
for i in nums:
licznik1 *= i
tab1.append(licznik1)
# Tworzenie tablicy iloczynów od tyłu
for i in reversed(nums):
licznik2 *= i
tab2.append(licznik2)
# Odwracamy tab2, aby miała tę samą kolejność co nums
tab2.reverse()
# Tworzenie odpowiedzi
for i in range(len(nums)):
if i - 1 < 0: # dla pierwszego elementu
answer.append(1 * tab2[i + 1]) # tab2[i + 1] istnieje
elif i + 1 >= len(nums): # dla ostatniego elementu
answer.append(1 * tab1[i - 1]) # tab1[i - 1] istnieje
else: # dla pozostałych elementów
answer.append(tab1[i - 1] * tab2[i + 1])
return answer