给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/product-of-array-except-self
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
返回一个数组,这个数组的值为 nums[i]左侧的乘积乘以右侧的乘积,可以先建一个ans[]数组,从左至右遍历,挨个乘,每个位置得到包括自身到数组开始位置的乘积,然后定义int r = 1;再从右遍历,最右侧的ans[i]= ans[i-1]*r;每次循环令r*nums[i],得到当前位置的右侧乘积。
class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
int []ans = new int [len];
ans[0]=nums[0];
for(int i=1;i<len;i++)
{
ans[i] = ans[i-1]*nums[i];
}
int r = 1;
for(int i=len - 1;i>0;i--)
{
ans[i] = ans[i-1] * r;
r*=nums[i];
}
ans[0] = r;
return ans;
}
}