前言
一个多月没有更新了。
正文
问题来源
本问题来自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
}
总结:
勤思考。
结语
不管怎么样好好加油。