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 時間複雜度內完成此題。高階 你可以...