加载中...
238-除自身以外数组的乘积(Product of Array Except Self)
发表于:2021-12-03 | 分类: 中等
字数统计: 803 | 阅读时长: 3分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/product-of-array-except-self

英文原文

Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i].

The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.

You must write an algorithm that runs in O(n) time and without using the division operation.

 

Example 1:

Input: nums = [1,2,3,4]
Output: [24,12,8,6]

Example 2:

Input: nums = [-1,1,0,-3,3]
Output: [0,0,9,0,0]

 

Constraints:

  • 2 <= nums.length <= 105
  • -30 <= nums[i] <= 30
  • The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.

 

Follow up: Can you solve the problem in O(1) extra space complexity? (The output array does not count as extra space for space complexity analysis.)

中文题目

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

 

示例:

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

 

提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。

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

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

通过代码

高赞题解

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int[] res = new int[nums.length];
        int k = 1;
        for(int i = 0; i < res.length; i++){
            res[i] = k;
            k = k * nums[i]; // 此时数组存储的是除去当前元素左边的元素乘积
        }
        k = 1;
        for(int i = res.length - 1; i >= 0; i--){
            res[i] *= k; // k为该数右边的乘积。
            k *= nums[i]; // 此时数组等于左边的 * 该数右边的。
        }
        return res;
    }
}

Java开发、c++开发、前端开发、客户端开发、测试开发,只要是技术人,2021\2022我们都要
后端tl:
人美心善,经常带我们出去玩
典型的护犊子系列
强推该老板,有想来的,你不会吃亏、不会上当。

质量团队tl
另外质量团队老板真的很帅、很年轻
没有经验怎么办?
手把手教学、手把手指导
面试体验极佳,试过的都说好~

最后,我们hc真的很多,基本上现在面试过了都会发offer的,不存在排队一说
毕竟新财年新定位、闲鱼不再只是做闲鱼
一线主管真的很nice,强推一个

说了这么多,口有点渴,去西湖喝口水

想投简历的请发邮件到xiaojiang.ll@alibaba-inc.com
也可以加微信just_love_think

统计信息

通过次数 提交次数 AC比率
149454 206291 72.4%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言

相似题目

题目 难度
接雨水 困难
乘积最大子数组 中等
粉刷房子 II 困难
上一篇:
235-二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)
下一篇:
237-删除链表中的节点(Delete Node in a Linked List)
本文目录
本文目录