lintcode之 数组剔除元素后的乘积
来源:互联网 发布:python 最大公约数 编辑:程序博客网 时间:2024/06/06 12:22
题目:
给定一个整数数组A。
定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。
解答:
保存一个左数组和右数组即可
class Solution {public: /** * @param A: Given an integers array A * @return: A long long array B and B[i]= A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1] */ vector<long long> productExcludeItself(vector<int> &nums) { // write your code here int size = nums.size(); if (size == 0) { return {}; } vector<long long> res(size, 0); vector<long long> left(size, 1); vector<long long> right(size, 1); for (int i = 1; i < size; ++i) { left[i] = left[i - 1] * nums[i - 1];//不包含当前数字的左边 } for (int j = size - 2; j >= 0; j--) { right[j] = right[j + 1] * nums[j + 1]; } for (int i = 0 ;i < size; ++i) { long long int l = (i == 0) ? 1 : left[i]; long long int r = (i == size - 1) ? 1 : right[i]; res[i] = l * r; } return res; }};
0 0
- LintCode 数组剔除元素后的乘积
- lintcode ----数组剔除元素后的乘积
- Lintcode 数组剔除元素后的乘积
- Lintcode 数组剔除元素后的乘积
- Lintcode:数组剔除元素后的乘积
- lintcode之 数组剔除元素后的乘积
- LintCode之50 数组剔除元素后的乘积
- lintcode-数组剔除元素后的乘积-50
- LintCode-剑指Offer-(50)数组剔除元素后的乘积
- 数组剔除元素后的乘积——LintCode
- LintCode 50. 数组剔除元素后的乘积
- LintCode 50 数组剔除元素后的乘积
- LintCode:数组剔除元素之后的乘积
- 数组剔除元素后的乘积
- 题目:数组剔除元素后的乘积
- (50)数组剔除元素后的乘积
- LintCode_数组剔除元素后的乘积
- 数组剔除元素后的乘积
- @property atomic与nonatomic readonly
- 大数据安全规范
- 缺少各种framework会报的错误
- Xcode 之自己编译静态库
- [剑指offer]重建二叉树
- lintcode之 数组剔除元素后的乘积
- C语言简易计算器
- App组件之服务Service——翻译自developer.android.com
- Mybatis最入门---ResultMaps实例篇(一对一查询)
- Classpath entry org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published
- POJ 2251 Dungeon Master BFS&DFS
- 教你如何建高逼格个人网站
- 【Unity】Unity 3D中的内存管理
- android 自定义组合控件[有Demo]