class Solution {
public:
vector<int> constructArr(vector<int>& a) {
if(a.size() == 0) return {};
if(a.size() == 1) return {1};
vector<int> left(a.size());
vector<int> right(a.size());
vector<int> ans(a.size());
left[0] = 1;
right[a.size() - 1] = 1;
for(int ii = 1; ii < a.size(); ii++) left[ii] = left[ii - 1] * a[ii - 1];
for(int ii = a.size()- 2; ii >= 0; ii--) right[ii] = right[ii + 1] * a[ii + 1];
for(int ii = 0; ii < a.size(); ii++) ans[ii] = left[ii] * right[ii];
return ans;
}
};
【leetcode 数学问题 C++】【剑指 Offer】 66. 构建乘积数组
最新推荐文章于 2023-05-01 22:54:11 发布