首页 > 试题广场 >

除自身以外数组的乘积

[编程题]除自身以外数组的乘积
  • 热度指数: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  
头像 牛客362459853号
发表于 2021-11-28 18:55:50
问题分析: 问题本身不难,如果可以用除法,直接计算数组中每个元素的乘积 k,然后res[i]=k/nums[i]。 但是题目限定不能用除法,如果不限定时间复杂度的话,每个元素都遍历一遍原数租。 但是题目又限定了时间复杂度O(n)。那么应该如何实现呢。定义一个res[]数租,让res 展开全文
头像 牛客289963513号
发表于 2022-03-02 00:07:43
思路就是,res数组先在i位保存[i,len-1]的乘积 叫 res1;nums数组在i位保存[0,i]的乘积 叫nums1;最后 res1[i+1]*nums1[i-1] 的乘积就是mums原始数组中除了i之外的所有数的乘积; 注意:索引 0 和 len-1 的位置要特殊处理; 因为 res1[l 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-01 17:09:13
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * 展开全文
头像 代码界的小白
发表于 2022-03-10 00:02:56
题目主要信息 给定一个长度为 n 的数组 nums ,返回一个数组 res,res[i]是nums数组中除了nums[i]本身以外其余所有元素的乘积,即:res[i]= nums*[1]×*nums*[2]×......×num**s[i−1]×num**s[i+1]......×num**s[n] 展开全文
头像 fred-coder
发表于 2022-02-03 20:16:09
利用左右前缀数组,对数据进行预处理,得到 每个值左侧和右侧的乘积,则除自身外的乘积为 左侧乘积 * 右侧乘积 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型一维数组 # cl 展开全文
头像 lijixu
发表于 2022-06-25 21:59:28
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ function timesExceptSelf( nums ) { // write 展开全文
头像 不会做题的小菜鸡
发表于 2022-03-11 00:37:16
题目分析 题目给出了我们一个列表 我们要返回一个列表,其中列表的每一项代表列表该数字左边的所有数字和右边的所有数字的乘积(不含本身),不使用除法操作 方法一:维护两个乘积列表 实现思路 我们通过一次遍历,维护一个left和一个right列表 对于每一个i位置的数字,left[i]表示数字 展开全文
头像 AimerAimer
发表于 2022-03-07 10:26:31
题意:          方法一: 前缀积+后缀积 思路:         遍历数组,分别计算前缀积和 展开全文
头像 h_y_d
发表于 2022-03-26 02:01:15
/**  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可  *  *   * @param nums int整型一维数组   * @param&nbs 展开全文
头像 牛客马MAXEY
发表于 2023-10-25 16:18:49
#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector 展开全文

问题信息

难度:
10条回答 1982浏览

热门推荐

通过挑战的用户

查看代码