很久之前做的这道题了,昨天被朋友问起来,竟然不会了,于是乎又开始了思索。最终还是翻开了曾经做的答案,怎么越来越迷糊了!
public class ProductofArrayExceptSelf {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
if(len < 2)
{
return nums;
}
int[] result = new int[len];
result[len - 1] = 1;
for(int i = len - 1;i > 0;i --)
{
result[i - 1] = result[i] * nums[i];
}
int left = 1;
for(int i = 0;i < len;i ++)
{
result[i] = result[i] * left;
left = left * nums[i];
}
return result;
}
}
本文介绍了一种高效算法,用于求解一个整数数组中每个元素对应的除自身以外所有元素的乘积。该算法避免了直接使用除法运算,并通过两遍扫描实现了O(n)的时间复杂度。
406

被折叠的 条评论
为什么被折叠?



