2022-4-8 高频面试题
作者:互联网
238. 除自身以外数组的乘积
给你一个整数数组 nums
,返回 数组 answer
,其中 answer[i]
等于 nums
中除 nums[i]
之外其余各元素的乘积 。
题目数据 保证 数组 nums
之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n)
时间复杂度内完成此题。
1 class Solution { 2 public int[] productExceptSelf(int[] nums) { 3 int n=nums.length,sum=1; 4 int[] l=new int[n]; 5 int[] r=new int[n]; 6 for (int i=0;i<n;i++) { 7 l[i]=sum; 8 sum*=nums[i]; 9 } 10 sum=1; 11 for (int i=n-1;i>=0;i--) { 12 r[i]=sum; 13 sum*=nums[i]; 14 } 15 int[] ans=new int[n]; 16 for (int i=0;i<n;i++) { 17 ans[i]=l[i]*r[i]; 18 } 19 return ans; 20 } 21 }
思路:构造l 和 r数组表示当前元素左边乘积和右边乘积,则结果为左右乘积和。
标签:面试题,乘积,nums,int,sum,数组,2022,new,高频 来源: https://www.cnblogs.com/benbicao/p/16116315.html