刷題篇 除自身以外陣列的乘積

2021-10-07 23:23:27 字數 811 閱讀 4670

leetcode 238. 除自身以外陣列的乘積。該題要求不能使用除法,這類題基本就是找規律的問題,他可能沒有固定套路或解法,是需要我們積累的。

下面是解題關鍵,不乘本身相當於將本身的數換成了1:

resres[0]

1nums[1]

…nums[n-2]

nums[n-1]

res[1]

nums[0]1…

nums[n-2]

nums[n-1]

…res[n-2]

nums[0]

nums[1]…1

nums[n-1]

res[n-1]

nums[1]

nums[2]

…nums[n-2]

1從該錶可以看出,斜對角線上的1將整個矩陣分成了上下三角,我們分別計算上下三角即可求出最終結果。

def

productexceptself

(nums)

: res =[1

] p, q =1,

1#分別去輔助計算上下三角

for i in

range

(len

(nums)-1

):#計算下三角

p = p*nums[i]

for j in

range

(len

(nums)-1

,0,-

1):#計算上三角並累乘

q = q*nums[j]

res[j-1]

*= q

return res

除自身以外陣列的乘積

目錄 1 題目描述 2 題目分析 3 實現 給定長度為 n 的整數陣列nums,其中 n 1,返回輸出陣列output,其中output i 等於nums中除nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成...

除自身以外陣列的乘積

給定長度為 n 的整數陣列nums,其中 n 1,返回輸出陣列output,其中output i 等於nums中除nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。高階 你可以在常數空間複雜度內完成這個...

除自身以外陣列的乘積

提交 總結給你乙個長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。高階 你可以...