当前位置:   article > 正文

【LeetCode热题100】【数组】除自身以外数组的乘积

【LeetCode热题100】【数组】除自身以外数组的乘积

题目链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)

要找除开本身以外其他元素的乘积,如果可以用除法的话,直接累积所有元素然后除以每个元素

不能用除法,可以用两个数组计算元素的前缀乘积和后缀乘积,然后相乘即可

只能用一个输出数组的话,可以先用这个数组记录前缀累积,然后再用一个变量记录后缀累积,用前缀累积乘以后缀累积就是答案

  1. class Solution {
  2. public:
  3. vector<int> productExceptSelf(vector<int> &nums) {
  4. vector<int> ans(nums.size());
  5. ans[0] = 1;
  6. for (int i = 1; i < nums.size(); ++i)
  7. ans[i] = ans[i - 1] * nums[i - 1];
  8. int suffix = 1;
  9. for (int i = nums.size() - 1; i >= 0; --i) {
  10. ans[i] = ans[i] * suffix;
  11. suffix = suffix * nums[i];
  12. }
  13. return ans;
  14. }
  15. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/460027
推荐阅读
相关标签
  

闽ICP备14008679号