從左到右遍歷一趟,記錄每個位置左邊的乘積(首位為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...