力ブラシ問題238.自身以外の配列の積(java)


長さnの整数配列numsが与えられ、n>1は出力配列outputを返し、output[i]はnums[i]を除くnumsの残りの要素の積に等しい.
例:
  : [1,2,3,4]
  : [24,12,8,6]
  :        ,   O(n)           。

進級:定数空間の複雑さの中でこの問題を完成することができますか?(空間複雑度解析の目的で、出力配列は余分な空間と見なされない.)
構想
左積*右積
class Solution {
    public int[] productExceptSelf(int[] nums) {
        int[] res = new int[nums.length];
        int k = 1;
        for(int i = 0; i < res.length; i++){
            res[i] = k;
            k = k * nums[i]; //                      
        }
        k = 1;
        for(int i = res.length - 1; i >= 0; i--){
            res[i] *= k; // k        。
            k *= nums[i]; //           *      。
        }
        return res;
    }
}