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;
        }
    };
    
  • 相关阅读:
    js学习笔记
    Bootstrap学习笔记
    css学习任务二:切图写代码
    九宫格改进
    js学习笔记
    XHTML复习笔记
    html基础知识复习笔记
    css学习任务一:绘制九宫格
    如何不使用第三个变量来交换两个数的值
    算术右移与逻辑右移
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433812.html
Copyright © 2011-2022 走看看