C++ | Leetcode C++题解之第238题除自身以外数组的乘积

avatar
作者
猴君
阅读量:5

题目:

题解:

class Solution { public:     vector<int> productExceptSelf(vector<int>& nums) {         int length = nums.size();          // L 和 R 分别表示左右两侧的乘积列表         vector<int> L(length, 0), R(length, 0);          vector<int> answer(length);          // L[i] 为索引 i 左侧所有元素的乘积         // 对于索引为 '0' 的元素,因为左侧没有元素,所以 L[0] = 1         L[0] = 1;         for (int i = 1; i < length; i++) {             L[i] = nums[i - 1] * L[i - 1];         }          // R[i] 为索引 i 右侧所有元素的乘积         // 对于索引为 'length-1' 的元素,因为右侧没有元素,所以 R[length-1] = 1         R[length - 1] = 1;         for (int i = length - 2; i >= 0; i--) {             R[i] = nums[i + 1] * R[i + 1];         }          // 对于索引 i,除 nums[i] 之外其余各元素的乘积就是左侧所有元素的乘积乘以右侧所有元素的乘积         for (int i = 0; i < length; i++) {             answer[i] = L[i] * R[i];         }          return answer;     } };

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!