LeetCode刷題之238 除自身以外陣列的乘積

2021-10-02 01:43:59 字數 1419 閱讀 2925

我不知道將去向何方,但我已在路上!

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

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

class

solution

:def

productexceptself

(self, nums: list[

int])-

> list[

int]

: left_val,right_val =[1

]*len(nums),[

1]*len

(nums)

result =

for i in

range(1

,len

(nums)):

left_val[i]

*= left_val[i-1]

* nums[i-1]

for i in

range

(len

(nums)-2

,-1,

-1):

right_val[i]

*= right_val[i+1]

* nums[i+1]

for i in

range

(len

(nums)):

* right_val[i]

)return

(result)

# 執行用時 :152 ms, 在所有 python3 提交中擊敗了79.30%的使用者

# 記憶體消耗 :20.8 mb, 在所有 python3 提交中擊敗了12.02%的使用者

class

solution

:def

productexceptself

(self, nums: list[

int])-

> list[

int]

: result =[1

]*len(nums)

left,right =1,

1for i in

range(0

,len

(nums)):

result[i]

*= left

left *= nums[i]

result[

len(nums)

-i-1

]*= right

right *= nums[

len(nums)

-i-1

]return

(result)

# 執行用時 :216 ms, 在所有 python3 提交中擊敗了27.78%的使用者

# 記憶體消耗 :20.4 mb, 在所有 python3 提交中擊敗了84.13%的使用者

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

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

leetcode 238 除自身以外陣列的乘積

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

leetcode238 除自身以外陣列的乘積

從左到右遍歷一趟,記錄每個位置左邊的乘積 首位為1 從右到左走一趟,將上一步的結果累乘每一位右邊的乘積 class solution object def productexceptself self,nums if not nums return output 1 len nums k 1 for...