C++
思路:感觉理解题意之后就很简单,数组B中B[i]的值其实就是数组A中除了A[i]之外所有数据的乘积。如果可以用除法的话,计算A中所有数据的乘积,然后使用一个for循环除去A[i]的值即可。现在题目要求不使用除法,那么我就想到以i为结点,采用2个for循环分别计算A[0]至A[i-1]的乘积和A[i+1]至A[n-1]的乘积,然后再把二者相乘即可。代码如下:
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
//const vector<int>& B={0};
vector<int>B(A.size(),1);//定义数组B,长度为A.size
B[0]=1;//数组B的第一个元素设为1
for(int i=0;i<A.size();i++)
{
int num1=1;
int num2=1;
for(int j=0;j<i;j++)
{
num1*=A[j];
}
for(int j=i+1;j<A.size();j++)
{
num2*=A[j];
}
B[i]=num1*num2;
}
return B;
}
};注:我个人的问题在于vector不会用,还得补一补这方面的基础知识。

京公网安备 11010502036488号