LeetCode - 238 解題紀錄
題目: LeetCode - 238. Product of Array Except Self
題目說明
給一個陣列 nums,要求回傳一個陣列 res,res[i] 的值為除了 nums[i] 以外,其他所有位於 nums 的元素的乘積。
解題思路
解法一:定義一個
index
起始值為 - 1,訪問 nums 內所有元素,當碰到 0 時,把index
儲存,若再碰到 0,則代表整個 res 都是 0,可以直接回傳。若只有 1 個 0,則res[index] = all
,其餘都為 0,否則res[i] = all / nums[i]
。解法二:對於 res 來說,
res[i] = (nums[0] * nums[1] * ... * nums[i - 1]) * (num[nums.size() - 1] * num[nums.size() - 2] * ... * nums[i + 1])
,所以使用一個陣列計算右邊的部分,左邊的部分直接在迴圈做即可得到res
。
參考解法
解法一:
1 | class Solution { |
解法二:
1 | class Solution { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論