給你乙個長度為 n 的整數陣列nums
,其中 n > 1,返回輸出陣列output
,其中output[i]
等於nums
中除nums[i]
之外其餘各元素的乘積。
示例:
輸入: [1,2,3,4]
輸出: [24,12,8,6]
說明:請**不要使用除法,**且在 o(n) 時間複雜度內完成此題。
高階:
你可以在常數空間複雜度內完成這個題目嗎?( 出於對空間複雜度分析的目的,輸出陣列不被視為額外空間。)
思路:常規套路,將所有數相乘,乘積再分別除以每乙個數即可得出答案。不能使用除法,那我們思考一開始就不將當前位置的數乘進去。維護乙個left陣列和right陣列,對於下標i
表示其左邊所有數和右邊所有數的乘積分別儲存到left[i]
和right[i]
,結果即為兩者相乘,顯然可以用字首積再o(n)的時間內完成。我們可以做進一步優化,只維護left陣列
,right顯然可以用乙個數迭代表示。
238 除自身以外陣列的乘積
題目描述 給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。解題思路 拿到題...
238 除自身以外陣列的乘積
給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 高階 你可以在常數空間複雜度內完成這個題目嗎?出於對空間複雜度分析的目的,輸出陣列不...
238 除自身以外陣列的乘積
給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。分析 如果引入乙個o n ...