输入一个数组,输出除当前元素外其他元素的乘积数组
一般是算left,right数组然后相乘,时间复杂度o(n),空间复杂度o(n)
好的方法如下
int *cal(int *input,int n) { int i; int *result = new int [n]; result[0] = 1; for(i=1;i < n;i++) result[i]=result[i-1] * input[i-1]; result[0]=input[n-1]; for(i=n-2;i > 0;i--) { result[i] *=result[0]; result[0]*=input[i]; } return result; }
时间: 2024-11-06 03:32:18