题解 | 构建乘积数组

构建乘积数组

https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A int整型vector 
     * @return int整型vector
     */
    vector<int> multiply(vector<int>& A) {
        int n = A.size();
        vector<int> pre(n,1);
        pre[0] = A[0];
        for(int i = 1; i < n; i++){
            pre[i] = pre[i-1] * A[i];
        }
        vector<int> tail(n,1);
        tail[n - 1] = A[n - 1];
        for(int i = n - 2; i >= 0; i --){
            tail[i] = tail[i + 1] * A[i];
        }
        vector<int> B(n);
        B[0] = tail[1];
        B[n  -1 ] = pre[n  -2 ];
        for(int i = 1 ; i < n - 1; i ++){
            B[i] = pre[i-1] * tail[i + 1];
        }
        return B;
    }
};

全部评论
利用前缀乘和后缀乘获得
点赞 回复 分享
发布于 04-19 14:57 上海

相关推荐

不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务