知识点

数组

解题思路

遍历两次数组,定义一个arr存放最总答案,第一次将左边累乘的数存放进去,第二次将右边累乘的数存放进去就是最终结果。中间需要一个临时变量preMul存放累乘。

Java题解

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param milk_amount int整型一维数组 
     * @return int整型一维数组
     */
    public int[] product_except_self (int[] milk_amount) {
        // write code here
        int n = milk_amount.length;
        int[] arr = new int[n];
        int preMul = 1;
        for(int i = 0; i < n; i++){
            arr[i] = preMul;
            preMul *= milk_amount[i];
        }
        preMul = 1;
        for(int i = n - 1; i >= 0; i--){
            arr[i] *= preMul;
            preMul *= milk_amount[i];
        }
        return arr;
    }
}