python假设产品列表如下_程序查找除Python中当前索引以外的所有元素的产品列表...

假设我们有一个称为nums的数字列表,我们必须找到一个新列表,以使新生成的列表的索引i处的每个元素都是原始列表中除索引i处的所有数字之外的所有数字的乘积。在这里,我们必须解决它而不使用除法。

因此,如果输入类似于nums = [2、3、4、5、6],那么输出将为[360、240、180、144、120]

为了解决这个问题,我们将遵循以下步骤-如果nums <1的大小返回数字

l:= nums的大小

左:=大小为l的列表,最初所有值均为null

right:=大小为l的列表,最初所有值均为null

温度:= 1

对于范围从0到nums的i,执行temp:= temp * nums [i-1]

左[i]:=温度

左[i]:=温度

如果我等于0,那么

除此以外,

温度:= 1

对于范围为nums的i-1到0,减小1,执行temp:= temp * nums [i +1]

正确的[i]:=临时

正确的[i]:=临时

如果我与nums的大小相同-1,则

除此以外,

对于范围从0到nums的i,执行左[i]:=左[i] *右[i]

返回左

让我们看下面的实现以更好地理解-

示例class Solution:

def solve(self, nums):

if len(nums) 

return nums

l = len(nums)

left = [None] * l

right = [None] * l

temp = 1

for i in range(len(nums)):

if i == 0:

left[i] = temp

else:

temp = temp * nums[i - 1]

left[i] = temp

temp = 1

for i in range(len(nums) - 1, -1, -1):

if i == len(nums) - 1:

right[i] = temp

else:

temp = temp * nums[i + 1]

right[i] = temp

for i in range(len(nums)):

left[i] = left[i] * right[i]

return left

ob = Solution()nums = [2, 3, 4, 5, 6]

print(ob.solve(nums))

输入值[2, 3, 4, 5, 6]

输出结果[360, 240, 180, 144, 120]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值