美文网首页
算法题整理, 2022-08-27

算法题整理, 2022-08-27

作者: Mc杰夫 | 来源:发表于2022-08-27 15:28 被阅读0次

    (2022.08.27 Sat)

    • 238 除自身以外数组的乘积
      给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

    题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。

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

    思路:两次遍历,分别从头和尾开始遍历,第一次遍历,answer[i]保存的是nums[0]到nums[i-1]的乘积,第二次遍历answer[i]= answer[i] * tmp,其中的tmp是nums[i+1]到nums[len(nums)-1]的乘积。

    class Solution:
        def productExceptSelf(self, nums: List[int]) -> List[int]:
            tmp = 1
            answer = [None] * len(nums)
            for i in range(len(nums)):
                if i == 0:
                    answer[i] = 1
                    continue
                answer[i] = nums[i-1] * answer[i-1]
            for i in range(len(nums)-1, -1, -1):
                answer[i] *= tmp
                tmp *= nums[i]
            return answer
    

    Reference

    1 leetcode

    相关文章

      网友评论

          本文标题:算法题整理, 2022-08-27

          本文链接:https://www.haomeiwen.com/subject/goefnrtx.html