publicclassProblem_238_ProductOfExcepetSelf{publicint[]productOfExcepetSelf(int[] nums){int n = nums.length;/*由于输出数组不算在空间复杂度内,那么我们可以将 L 或 R 数组用输出数组来计算。
先把输出数组当作 L 数组来计算,然后再动态构造 R 数组得到结果。
让我们来看看基于这个思想的算法。*/int[] output =newint[n];
output[0]=1;for(int i =1; i < n; i++){
output[i]= output[i -1]* nums[i -1];}int rightMutiply =1;for(int i = n -1; i >=0; i--){//逆向思维
output[i]= rightMutiply * output[i];
rightMutiply = rightMutiply * nums[i];}//空间复杂度是指解决问题需要的额外辅助空间,answer是问题本身就需要的空间。//因此用于输出的空间不算做空间复杂度。return output;}