链接
https://leetcode-cn.com/problems/product-of-array-except-self/
前言
题目
给你一个长度为 n 的整数数组 nums
,其中 n > 1,返回输出数组 output
,其中 output[i]
等于 nums
中除 nums[i]
之外其余各元素的乘积。
示例 :
输入: [1,2,3,4]
输出: [24,12,8,6]
关键
思路1
- 建立左数组和右数组
- 将左右相乘
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
n = len(nums)
l, r = [1]*n, [1]*n
res = []
for i in range(1, n):
l[i] = l[i-1]*nums[i-1]
for i in range(n-2, -1, -1):
r[i] = r[i+1]*nums[i+1]
for i in range(n):
res.append(l[i]*r[i])
return res
- range(n-2, -1, -1)是从n-2到-1以减序(即-1 -1。。。)的方式前进