数组的乘积

 

输入一个数组,输出除当前元素外其他元素的乘积数组

一般是算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;
}
View Code
posted @ 2016-11-05 11:42  mximo  阅读(1387)  评论(0编辑  收藏  举报