剑指offer | 训练题50:构建乘积数组
来源:互联网 发布:网络语言大全2017 编辑:程序博客网 时间:2024/05/16 14:42
题目描述
给定一个数组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]。不能使用除法。
思路
/** * 思路:剑指的思路,可以观察B和A的规律 B0 = 1 A1 A2 ... A(n-1) B1 = A0 1 A2 ... A(n-1) B2 = A0 A1 1 ... A(n-1) ... B(n-1) = A0 A1 A2 ... 1 * 由1连成的对角线把矩阵分成了上三角和下三角,可以根据规律先把下三角算出来,然后再对称得出完整的B */class Solution {public: vector<int> multiply(const vector<int>& A) { int len = A.size(); if(len == 0) return A; vector<int> B; //计算下三角形 B.push_back(1); for(int i = 1; i < len; i++){ B.push_back(B[i-1] * A[i-1]); } //合并上三角形 int temp = 1; for(int i = len-2; i >= 0; i--){ temp *= A[i+1]; B[i] *= temp; } return B; }};
阅读全文
0 0
- 剑指offer | 训练题50:构建乘积数组
- 【剑指offer】题52:构建乘积数组
- 剑指offer--构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- [剑指offer]构建乘积数组
- 剑指offer|构建乘积数组
- 《剑指offer》-构建乘积数组
- 剑指offer 构建乘积数组
- 构建乘积数组--剑指Offer
- 【剑指offer】构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- 剑指offer--构建乘积数组
- 构建乘积数组 剑指offer
- JAVA课堂笔记
- 在Mac和Windows上配置OpenGL环境
- java接口作用是什么?(经典)
- IE使用ajaxFileUpload上传文件后台返回json类型前台弹出下载提示框
- 车型选择三级联动插件
- 剑指offer | 训练题50:构建乘积数组
- Oracle普通表修改为点数据集
- coe
- MySQL连接字符串设置了字符集,写入数据还出现乱码
- JVM内存堆布局图解分析
- 常用正则表达式
- 剑指offer——输出链表倒数第K个结点
- The theory of XGBoost and Boosted Tree
- 监听ListView滑动实现标题背景Alpha渐变