赞
踩
题目链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)
要找除开本身以外其他元素的乘积,如果可以用除法的话,直接累积所有元素然后除以每个元素
不能用除法,可以用两个数组计算元素的前缀乘积和后缀乘积,然后相乘即可
只能用一个输出数组的话,可以先用这个数组记录前缀累积,然后再用一个变量记录后缀累积,用前缀累积乘以后缀累积就是答案
- class Solution {
- public:
- vector<int> productExceptSelf(vector<int> &nums) {
- vector<int> ans(nums.size());
- ans[0] = 1;
- for (int i = 1; i < nums.size(); ++i)
- ans[i] = ans[i - 1] * nums[i - 1];
- int suffix = 1;
- for (int i = nums.size() - 1; i >= 0; --i) {
- ans[i] = ans[i] * suffix;
- suffix = suffix * nums[i];
- }
- return ans;
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。