L238 除自身以外陣列的乘積

2021-10-06 09:25:58 字數 1120 閱讀 4698

除自身以外陣列的乘積

給你乙個長度為 n 的整數陣列 nums,其中 n > 1,返回輸出陣列 output ,其中 output[i] 等於 nums 中除 nums[i] 之外其餘各元素的乘積。

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

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

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

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

1.錯誤的嘗試

class

solution

for(

int i =

0; i < len; i++

)return res;

}}

輸入:

[1,0]

輸出[0,0]

預期結果

[0,1]

這種解法是無法滿足的

2.暴力方法解決

class

solution

res[i]

= ans;

}return res;

}}

2.記憶左邊與右邊的乘積就可以了

class

solution

right[len -1]

=1;for

(int i = len -

2; i >=

0; i--

)int

res =

newint

[len]

;for

(int i =

0; i < len; i++

)return res;

}}

其實記憶體還可以進一步節省,達到乙個常量級的消耗,這個就要注意遍歷的順序了

class

solution

int right =1;

//只用到乙個常量級的變數

for(

int i = len -

1; i >=

0; i--

)return ans;

}}

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 ...