提交代码
class Solution {
public int[] productExceptSelf(int[] nums) {
if(nums.length==0) return nums;
int len=nums.length;
int[] left=new int[len];
int[] right=new int[len];
left[0]=1;right[len-1]=1;
for(int i=1;i<len;i++)
left[i]=left[i-1]*nums[i-1];
for(int i=len-2;i>=0;i--)
right[i]=right[i+1]*nums[i+1];
int[] res=new int[len];
for(int i=0;i<len;i++)
res[i]=left[i]*right[i];
return res;
}
}
运行结果

本文介绍了一种算法,用于计算数组中每个元素除自身以外的所有元素的乘积。通过预计算左右两侧元素的乘积,该算法能够在O(n)的时间复杂度内解决问题,避免了直接相乘导致的大数溢出。
839

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



