leetcode238除自身以外数组的乘积

leetcode238 Product of Array Except Self

Posted by BY on August 22, 2019

前言

一个多月没有更新了。

正文

问题来源

本问题来自leetcode上的238题。

问题描述

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

示例 1:

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

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

分析:

递归

func productExceptSelf(nums []int) []int {
    res := make([]int, len(nums))
    res[0] = 1 
    for i := 1; i < len(nums); i++ {
        res[i] = res[i-1] * nums[i-1]
    }
    tmp := 1
    for i := len(nums)-1; i >= 0; i-- {
        
        res[i] = tmp * res[i]
        tmp = tmp * nums[i]
    }
    return res
}

总结:

勤思考。

结语

不管怎么样好好加油。