美文网首页
<剑指Offer>面试题66: 构建乘积数组

<剑指Offer>面试题66: 构建乘积数组

作者: cb_guo | 来源:发表于2019-02-26 20:25 被阅读0次

    题目描述

    • 给定一个数组 A[0, 1, ..., n-1],请构建一个数组 B[0, 1, ..., n-1]
    • 其中 B 中的元素 B[i] = A[0] * A[1] * ... A[i-1] * A[i+1] * ... A[n-1]

    题目解读

    • 剑指Offer 312
    • 书上讲的很详细,看书

    代码

    class Solution {
    public:
        vector<int> multiply(const vector<int>& A) {
            int length = A.size();
            vector<int> B(length, 1);
            
            for(int i=1; i < length; i++){
                B[i] = B[i-1] * A[i-1];
            }
            
            int temp = 1;
            // 在上一步,B[length-1]已经构建好了
            for(int i=length-2; i >= 0; i--){ 
                temp = temp * A[i+1];
                B[i] = B[i] * temp;
            }
            
            return B;
        }
    };
    

    总结展望

    相关文章

      网友评论

          本文标题:<剑指Offer>面试题66: 构建乘积数组

          本文链接:https://www.haomeiwen.com/subject/husayqtx.html