给定一个长度为 n 的数组 nums ,返回一个数组 res,res[i]是nums数组中除了nums[i]本身以外其余所有元素的乘积,即:
1.请不要使用除法,并且在 O(n) 时间复杂度内完成此题。
2.题目数据保证res数组的元素都在 32 位整数范围内。
3.有O(1)空间复杂度的做法,返回的res数组不计入空间复杂度计算。
数据范围:
[1,2,3,4]
[24,12,8,6]
res[0]=2*3*4=24 res[1]=1*3*4=12 res[2]=1*2*4=8 res[3]=1*2*3=6
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ func timesExceptSelf( nums []int ) []int { pre:=1 ans:=make([]int,len(nums)) for i:=0;i<len(nums);i++{ ans[i]=pre pre*=nums[i] } pre=1 for i:=len(nums)-1;i>=0;i--{ ans[i]*=pre pre*=nums[i] } return ans }