leetcode_c++:Product of Array Except Self(238)
来源:互联网 发布:网络诽谤怎么处理 编辑:程序博客网 时间:2024/05/29 14:55
题目
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Solve it without division and in O(n).
For example, given [1,2,3,4], return [24,12,8,6].
算法
O(n)
我们可以先遍历一遍数组,每一个位置上存之前所有数字的乘积。那么一遍下来,最后一个位置上的数字是之前所有数字之积,是符合题目要求的,只是前面所有的数还需要在继续乘。我们这时候再从后往前扫描,每个位置上的数在乘以后面所有数字之积,对于最后一个位置来说,由于后面没有数字了,所以乘以1就行。
class Solution {public: vector<int> productExceptSelf(vector<int>& nums) { vector<int> res(nums.size(), 1); for (int i = 1; i < nums.size(); ++i) { res[i] = res[i - 1] * nums[i - 1]; } int right = 1; for (int i = nums.size() - 1; i >= 0; --i) { res[i] *= right; right *= nums[i]; } return res; }};
0 0
- leetcode_c++:Product of Array Except Self(238)
- leetcode 238: Product of Array Except Self
- 238 Product of Array Except Self
- 238Product of Array Except Self
- LeetCode 238: Product of Array Except Self
- Leetcode #238 Product of Array Except Self
- 238 - Product of Array Except Self
- Leetcode 238 Product of Array Except Self
- 238Product of Array Except Self
- [leetcode 238]Product of Array Except Self
- LeetCode(238)Product of Array Except Self
- leetcode 238: Product of Array Except Self
- Leetcode #238 Product of Array Except Self
- [LeetCode 238] Product of Array Except Self
- leetcode 238:Product of Array Except Self
- Product of Array Except Self - LeetCode 238
- [238]Product of Array Except Self
- LeetCode 238 Product of Array Except Self
- 并发容器之ConcurrentHashMap
- Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
- Android应用Context详解及源码解析
- mysql变量的使用
- Fiddler - 前端开发值得拥有
- leetcode_c++:Product of Array Except Self(238)
- Oracle RAC相关问题——adding cluster entries toinittab
- Missing Number
- Linux的sudo命令和chmod命令
- 并发容器之CopyOnWriteArrayList
- Android数据存储五种方式总结
- <blockquote>标签,长文本引用
- Protocol Buffer简介、安装与使用
- 依赖、关联、聚合、组合等之间的关系