50.数组剔除元素后的乘积
题目比较简单,只要算出数组中不包含本元素的其他元素乘积就行了。但是开头自己一直在犯傻,分了很多情况讨论当A[j]不等于A[i]的时候进行乘积,其中又包括等于0还是不等于0的情况。后来突然想到数组的话,只要下标不相等不就可以了么?所以直接AC,代码如下:
class Solution {
public:
/*
* @param nums: Given an integers array A
* @return: A long long array B and B[i]= A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1]
*/
vector<long long> productExcludeItself(vector<int> &nums) {
// write your code here
vector<long long> b;
long long result=1.0;
if (nums.size()==1 && nums[0]==0) b.push_back(1);
else{
for(int i=0;i<nums.size();i++)
{
result=1.0;
for(int j=0;j<nums.size();j++)
{
//if (nums[j]==0) result=0;
if(j!=i) result=result*nums[j];
}
b.push_back(result);
} }
return b;
}
};
作者:YunLambert
-------------------------------------------
个性签名:一名会音乐、爱健身的不合格程序员
可以Follow博主的Github哦(っ•̀ω•́)っ✎⁾⁾