没做出来
本来的思路是遍历一遍得到所有乘积和然后除就行 但是题目不能用除法
答案的思路
cpp
for(int i=0;i<n;++i) //最终每个元素其左右乘积进行相乘得出结果
{
res[i]*=left; //乘以其左边的乘积
left*=nums[i];
res[n-1-i]*=right; //乘以其右边的乘积
right*=nums[n-1-i];
}
就是相当于每个元素都是左边元素乘积与右边元素乘积的和 也可以称为左前和右后的乘积
时间复杂度为n 空间复杂度1