class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector
     */
    //思路res按顺序求前i个数的乘积,后逆序处理res
    vector<int> timesExceptSelf(vector<int>& nums) {
        // write code here
        int n=nums.size();
        vector<int> res(n,1);
        res[0]=nums[0];//第一个位置需特殊处理
        for(int i=1;i<n;i++){
            res[i]=res[i-1]*nums[i];
        }
        int temp1=1;//用于记录 i +1到 n-1 个数的乘积方便后面直接与res的前 i-1 的乘积得出结果
        for(int i=n-1;i>0;i--){
            res[i]=res[i-1]*temp1;
            temp1*=nums[i];
        }
        res[0]=temp1;//第一个位置特殊处理
        return  res;
    }
};