zoukankan      html  css  js  c++  java
  • 238. Product of Array Except Self

    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 ofnums except nums[i].

    Solve it without division and in O(n).

    For example, given [1,2,3,4], return [24,12,8,6].

    Follow up:
    Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)

    =================

    数组除自身元素外,其他元素间的乘积,形成新的数组.

    --------------

    思路:

    设置两个整数变量,start=end=1,新的返回数组vector<int> re(nums.size(),1);

    分别从数组首尾依次 对 re中当前元素相乘&赋值

    遍历一边后,正好re中每个元素就是所要求的.

    =======

    代码

    class Solution {
    public:
        vector<int> productExceptSelf(vector<int>& nums) {
            if(nums.empty()) return vector<int>();
    
            vector<int> re(nums.size(),1);
            int start = 1;
            int e = 1;
            for(int i =0;i<(int)nums.size();i++){
                re[i] *= start;
                start *= nums[i];
                re[nums.size()-i-1] *=e;
                e *= nums[nums.size()-i-1];
            }
            for(auto i:re) cout<<i<<" ";
            cout<<endl;
            return re;
        }
    };
  • 相关阅读:
    解方程
    十进制快速幂
    comb
    题单解题记录-POJ题目分类推荐 (很好很有层次感)
    算法题离谱错误合集
    VMware-Ubuntu16.04踩坑解决记录
    2020牛客多校赛第三场
    需学习的博客地址
    错误记录
    可持久化线段树 区间第k大/小
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5608782.html
Copyright © 2011-2022 走看看