python数组除以常数_Python中自我除以数组的乘积

假设我们有一个称为nums的n个整数的数组,其中n>1。我们必须找到一个数组输出,使得output [i]等于nums [i]以外的所有nums元素的乘积。因此,如果输入数组为[1,2,3,4],则输出为[24,12,8,6]。我们必须解决这个问题而不使用除法运算符。

为了解决这个问题,我们将遵循以下步骤-right_mul:=一个与nums大小相同的数组,用0填充

right_mul的最后一个元素=数字的最后一个元素

对于范围从1到nums的iright_mul [数字的长度– i – 1] = right_mul [数字的长度– i] * nums [数字的长度– i – 1]

输出:=一个与nums大小相同的数组,用0填充

前缀:= 1,索引:= 0

而索引

前缀:=前缀*数字[索引]

索引:=索引+ 1

输出的最后一个元素:=前缀

返回输出

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

示例class Solution(object):

def productExceptSelf(self, nums):

right_multiply = [0] * len(nums)

right_multiply[-1]=nums[-1]

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

right_multiply[len(nums)-i-1] = right_multiply[len(nums)-i] * nums[len(nums)-i-1]

output = [0]*len(nums)

prefix = 1

current_index = 0

while current_index 

output[current_index] = prefix * right_multiply[current_index+1]

prefix *= nums[current_index]

current_index +=1

output[-1] = prefix

return output

ob1 = Solution()

print(ob1.productExceptSelf([1,3,5,7,9]))

输入值[1,3,5,7,9]

输出结果[945, 315, 189, 135, 105]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值