1. 程式人生 > 其它 >2022-4-8 高頻面試題

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陣列表示當前元素左邊乘積和右邊乘積,則結果為左右乘積和。