zoukankan      html  css  js  c++  java
  • Leetcode238. Product of Array Except Self除自身以外数组的乘积

    给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

    示例:

    输入: [1,2,3,4] 输出: [24,12,8,6]

    说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。

    进阶:

    你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)

    temp用来记录从0到i - 1个元素的乘积

    output[i]表示从i到最后一个元素的乘积

    class Solution {
    public:
        vector<int> productExceptSelf(vector<int>& nums) 
        {
            int len = nums.size();
            vector<int> output(len, 0);
            vector<int> save(len, 0);
            int temp = 0;
            for(int i = len - 1; i >= 0; i--)
            {
                if(i == len - 1)
                {
                    temp = nums[len - 1];
                    save[i] = temp;
                }
                else
                {
                    temp *= nums[i];
                    save[i] = temp;
                }
            }
            temp = 1;
            for(int i = 0; i < len - 1; i++)
            {
                output[i] = temp * save[i + 1];
                temp *= nums[i];
            }
            output[len - 1] = temp;
            return output;
        }
    };
    
  • 相关阅读:
    函数式编程
    _.pick lodash
    Vue mixins extend
    js 导入json配置文件
    FormData
    shell中的调试与计算
    linux命令(6/10):find 命令
    Linux性能测试分析命令_sar+iostat+vmstat+top
    linux命令详解之(at)
    linux命令(6/9):watch命令
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433812.html
Copyright © 2011-2022 走看看