2022-4-8 高頻面試題
阿新 • • 發佈:2022-04-08
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=newint[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陣列表示當前元素左邊乘積和右邊乘積,則結果為左右乘積和。