zoukankan      html  css  js  c++  java
  • 剑指offer-构建乘积数组-数组-python

    题目描述

    给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。
     
     
    思路:按上图把每行被1分割的两部分乘积都计算出来,这样可以从首尾分别用累乘算出两个列表,然后两个列表首尾相乘就是B的元素
     
    首先构建一个数组B,B的值由A的长度组成,然后遍历B,将每个B数组中的元素初始化1
    遍历A中除了i以外的所有元素,将每个元素累×在B上,输出B
     
    # -*- coding:utf-8 -*-
    class Solution:
        def multiply(self, A):
            # write code here
            B = [i for i in range(len(A))]
            for i in B:
                B[i] = 1
                for j in A[:i]+A[i+1:]:
                    B[i]*=j
            return B
     
     
  • 相关阅读:
    Xcode代码块快捷输入
    Git常用命令
    vim
    MACOX中apache配置
    IOS中实现动画的几种方式
    Swift与OC混合编译
    网络图像加载
    我对互联网的理解
    运行时
    自动布局使用
  • 原文地址:https://www.cnblogs.com/ansang/p/12092394.html
Copyright © 2011-2022 走看看