赞
踩
题目链接:https://leetcode-cn.com/problems/product-of-array-except-self/
题目如下:
class Solution { public: vector<int> productExceptSelf(vector<int>& nums) { //原数组: [1 2 3 4] //左部分的乘积: 1 1 1*2 1*2*3 //右部分的乘积: 2*3*4 3*4 4 1 //结果: 1*2*3*4 1*3*4 1*2*4 1*2*3*1 //结论:当前位置的结果为它的 左部分的乘积 * 右部分的乘积 int n=nums.size(); int left=1,right=1;//left:从左边开始累乘,right:从右边开始累乘 vector<int> result(n,1); for(int i=0;i<n;++i){ result[i]=result[i]*left; left=left*nums[i];//左累乘 result[n-1-i]=result[n-1-i]*right; right=right*nums[n-1-i];//右累乘 } return result; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。