-
代码:
class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: res, p, q = [1], 1, 1 for i in range(len(nums) - 1): # bottom triangle p *= nums[i] res.append(p) for i in range(len(nums) - 1, 0, -1): # top triangle q *= nums[i] res[i - 1] *= q return res
-
思路:
我们可以将 res 数组列成乘积形式,不同的 nn 组成每行内容,形成一个矩阵,可以发现矩阵 主对角线 全部为 11 (当前数字不相乘,等价为乘 11);
因此,我们分别计算矩阵的 下三角 和 上三角,并且在计算过程中储存过程值,最终可以在遍历 22 遍 nums 下完成结果计算。
这是大佬的思路,我还在理解中
LeetCode238 除自身外数组的乘积
最新推荐文章于 2024-06-20 00:23:47 发布