【数组】238. 除自身以外数组的乘积

题目:

 

 

解答:

 1 class Solution {
 2 public:
 3    vector<int> productExceptSelf(vector<int>& nums) 
 4     {
 5         int n = nums.size();
 6         
 7         //把向量output初始化为1
 8         vector<int> output(n,1);  
 9 
10         //采用两端同时累乘,最终得到的ouput[i]的值即除nums[i]以外的乘积
11         int left = 1;
12         int right = 1;
13         for(int i = 0; i < n; i++)
14         {
15             //0~i-1项乘积置于output[i]
16             output[i] *= left;    
17             left *= nums[i];
18 
19             //output[i]再乘以i+1~n-1项
20             output[n-1-i] *= right;
21             right *= nums[n-1-i];
22         }
23         
24         return output;
25     }
26 
27 };

 

posted @ 2020-05-05 17:03  梦醒潇湘  阅读(174)  评论(0)    收藏  举报