美文网首页
LeetCode-238. 除自身以外数组的乘积-刷题思路分享

LeetCode-238. 除自身以外数组的乘积-刷题思路分享

作者: 小小尧 | 来源:发表于2019-03-05 14:27 被阅读0次

    看代码注释

    class Solution:
        def productExceptSelf(self, nums: List[int]) -> List[int]:
                    # 看到这个问题,第一眼反应是2个 for 循环解决问题,但是:1、请不要使用除法;2、在 O(n) 时间复杂度内完成此题。emmmmm——小尧
            n=len(nums)
            leftPro,rightPro,output = [1]*n, [1]*n, [1]*n
            for i in range(0,n-1):
                print(i)
                leftPro[i+1]=nums[i]*leftPro[i] # 非常简单,我们可以遍历nums,在遍历的过程中将对应元素累乘,这样我们就得到了对应元素左边所有元素的乘积。
                rightPro[n-i-2]=nums[n-i-1]*rightPro[n-i-1] # 然后我们反向遍历nums,做相同操作即可
            for i in range(0,n):
                output[i]=leftPro[i]*rightPro[i] # 再将两个结果相乘即可。
            return output
    
    AC截图

    相关文章

      网友评论

          本文标题:LeetCode-238. 除自身以外数组的乘积-刷题思路分享

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