剑指offer66:构建乘积数组

题目链接:

构建乘积数组_牛客题霸_牛客网

普通方法

1.遍历一遍数组,记录数字零的索引,并将其他数求乘积mul

2.如果零的个数超过1,则数组B全为0

3.如果零的个数为1,并且在数组中的索引为i,那么B数组仅i处有值,且为mul

4.如果没有零,B[i] = mul / A[i]

双向遍历

方法解析

step 1:初始化数组B,第一个元素为1

step 2:从左到右遍历数组A,将数组B的前一个数与数组A的前一个数相乘就得到了下三角中数组B的当前数

step 3:再从右到左遍历数组A,用一个数字记录从右到左上三角中的累乘,每次只会乘上一个数,同时给数组B对应部分也乘上该累乘

你可能感兴趣的:(剑指offer66:构建乘积数组)