最近开始在leetcode上刷算法题了,这儿把自己每天刷的题来给大家分享一下,下面看这道题:
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4] 输出: [24,12,8,6]
说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。
进阶:
你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)
注意这道题的几点限制:1.不使用除法 2. O(n)时间复杂度 3. O(1) 空间复杂度。
最近比较忙,具体思路就不写了,直接附上我的代码吧,大家多多斧正:
/** * @param {number[]} nums * @return {number[]} */ var productExceptSelf = function(nums) { var reduce_val = 1; var res = [1]; // left for(var i=1;i=0;i--){ reduce_val*= nums[i+1]; res[i] *= reduce_val; } return res; };
PS:如果这篇文章让你学到了一点知识,欢迎点赞并关注我哦,每天一点技术干货,让我陪你在大牛的路上越走越远!!!