【题目】
【分析】 要求不能使用除法,即不能先把所有数乘起来,然后遍历一遍,在遍历的同时再除以这个数。 第i个位置的结果=前面的数的乘积*后面数的乘积。 要求使用O(n)的时间完成。即遍历一遍、两遍、三遍。。。完成。 我们可以从前往后遍历一遍,记下前面数的乘积。然后从后往前遍历一遍,记下后面数的乘积。
【改进】 以上方法差不多了,但是空间复杂度为o(n)。可以优化一下。left数组和right数组保留一个即可。 先计算完left,然后最后的结果直接放到left中。
【结果】
|