首页 > 试题广场 >

除自身以外数组的乘积

[编程题]除自身以外数组的乘积
  • 热度指数:1704 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的数组 nums ,返回一个数组 res,res[i]是nums数组中除了nums[i]本身以外其余所有元素的乘积,即:

1.请不要使用除法,并且在 O(n) 时间复杂度内完成此题。
2.题目数据保证res数组的元素都在 32 位整数范围内。
3.有O(1)空间复杂度的做法,返回的res数组不计入空间复杂度计算。

数据范围:
示例1

输入

[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
}

发表于 2023-03-17 09:56:24 回复(0)

问题信息

难度:
1条回答 1985浏览

热门推荐

通过挑战的用户

查看代码