leetcode Product of Array Except Self
阿新 • • 發佈:2018-12-14
題目要求複雜度為O(n),且不能用除法
那算從左和從右開始乘的成績,然後算到某一位,直接找左邊的乘積和右邊的乘積,乘起來就行
class Solution { public: vector<int> productExceptSelf(vector<int>& nums) { vector<int> l,r,result; int tl=1,tr=1; for(int i=0;i<nums.size();i++) { tl*=nums[i]; tr*=nums[nums.size()-i-1]; l.push_back(tl); r.push_back(tr); } for(int i=0;i<nums.size();i++) { if(i==0) { result.push_back(r[nums.size()-2]); } else if(i==nums.size()-1) { result.push_back(l[nums.size()-2]); } else { result.push_back(l[i-1]*r[nums.size()-i-2]); } } if(nums.size()==1) return nums; return result; } };