美文网首页
<剑指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