leetcode238 除自身以外陣列的乘積

2021-09-25 07:51:52 字數 540 閱讀 7360

從左到右遍歷一趟,記錄每個位置左邊的乘積(首位為1)

從右到左走一趟,將上一步的結果累乘每一位右邊的乘積

class solution(object):

def productexceptself(self, nums):

if not nums:

return

output = [1] * len(nums)

k = 1

for i in range(len(nums)):

output[i] = k

k *= nums[i] #更新k

k = 1

for i in range(len(nums)-1,-1,-1):

output[i] *= k #累乘

k *= nums[i] #更新k

return output

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

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

這個題目就是 劍指offer 上面的面試題66。剛開始就是按照上面的思路然後構造了兩個陣列pre和last,分別記錄從前往後的累乘積和從後往前的累乘積,然後再遍歷一次得到result,其中result i pre i 1 last i 1 如下 public static int productex...