238. 除自身以外数组的乘积
最近更新:2025-03-07 | 字数总计:187 | 阅读估时:1分钟 | 阅读量: 次
解析 前缀和+后缀和 Problem: 238. 除自身以外数组的乘积
解析 前缀和+后缀和 移i位结果是前缀和i-1和后缀和i+1的乘积。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class Solution {public : vector<int > productExceptSelf (vector<int > &nums) { if (nums.empty ()){ return {}; } int n = nums.size (); vector<int > res (n) ; vector<int > prefixProduct (n) ; vector<int > suffixProduct (n) ; prefixProduct[0 ]=nums[0 ]; suffixProduct[n-1 ]=nums[n-1 ]; for (int i = 1 ; i < n; ++i) { prefixProduct[i]=prefixProduct[i-1 ]*nums[i]; suffixProduct[n-1 -i]=suffixProduct[n-i]*nums[n-1 -i]; } res[0 ]=suffixProduct[1 ]; res[n-1 ]=prefixProduct[n-2 ]; for (int i =1 ;i<n-1 ;++i){ res[i] =prefixProduct[i-1 ]*suffixProduct[i+1 ]; } return res; } };