238. 除自身以外數組的乘積

238. 除自身以外數組的乘積

給定長度爲 n 的整數數組 nums,其中 n > 1,返回輸出數組 output ,其中 output[i] 等於 nums 中除 nums[i] 之外其餘各元素的乘積。

示例:

輸入: [1,2,3,4]

輸出: [24,12,8,6]

說明: 不要使用除法,且在 O(n) 時間複雜度內完成此題。

進階:
你可以在常數空間複雜度內完成這個題目嗎?( 出於對空間複雜度分析的目的,輸出數組不被視爲額外空間。)

 

二.自我探尋

思路:輸出數組不算額外空間,從前往後循環輸入數組,用輸出數組先存儲該數左邊相乘的積,再從後往前循環輸入數組,用輸出數組直接乘該數右邊的乘積。

代碼:public int[] productExceptSelf(int[] nums) {

           int[] output=new int[nums.length];

           int right=nums.length-1;

           output[0]=1;

           int q=1;

           for(int i=0;i<nums.length-1;i++)

           {

             output[i+1]=output[i]*nums[i];

           }

           for(int j=nums.length-1;j>0;j--)

           {

             q=q*nums[j];

             output[j-1]=q*output[j-1];

           }

           return output;

       }

評價:

三.網絡學習過程

 

四.Python實現

 

 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章