【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 & 代碼
- 更新版
題目描述
- 首先暴力二層循環肯定可以,然后先累乘整個數組,再用除法肯定也行。
- 但是很遺憾,兩種做法都不滿足題目說明。
思路 & 代碼
- O(n) & O(1)
- 考慮到這個核心:ans[i] 就是當前元素左邊累乘 * 右邊累乘
- 那么完全可以分成左邊開始的累乘遍歷 + 右邊開始的累乘遍歷
- 具體見代碼 & 注釋
更新版
class Solution {public int[] productExceptSelf(int[] nums) {int[] ans = new int[nums.length];for(int i = 0, pre = 1; i < nums.length; i++) {ans[i] = pre;pre *= nums[i];}for(int i = nums.length - 1, next = 1; i >= 0; i--) {ans[i] *= next;next *= nums[i]; }return ans;} }總結
以上是生活随笔為你收集整理的【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】54. 螺旋矩阵
- 下一篇: 【LeetCode笔记】6. Z字形变化