如題:
對於乙個長度為 n 的整數陣列 nums,其中 n > 1,返回輸出陣列 output ,其中 output[i] 等於 nums 中除 nums[i] 之外其餘各元素的乘積。
要求:不要使用除法,且在 o(n) 時間複雜度內完成此題。
題解:要求1:不能使用除法,那只能相乘,例如對於nums = 【1,2,3,4】
這樣乙個陣列,求 0 號位的值,則只能使用nums[1]*nums[2]*nums[3]
要求2:在o(n)時間內,則不可以巢狀迴圈。
所以解法如下:
from typing import list
class
solution
:def
productexceptself
(self, nums: list[
int])-
> list[
int]
: l =
[nums[0]
] size =
len(nums)
if size ==0:
return
0# 求從左邊開始遞增的乘積
r =[nums[size-1]
]for index in
range(1
,size-1)
: multipy = l[index-1]
*nums[index]
# 求從右邊開始遞減的乘積
for index in
range
(size-2,
0,-1
):multipy = r[size-
2-index]
*nums[index]
# 用index左邊遞增的乘積 * 右邊遞減的乘積
res =
[r[-1]
]for index in
range(1
,size-1)
: multipy = l[index-1]
*r[size-
2-index]-1
])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 時間複雜度內完成此題。高階 你可以...