【LeetCode】238.Product of Array Except Self(Medium)解题报告
题目地址:https://leetcode.com/problems/product-of-array-except-self/
题目描述:
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Solve it without division and in O(n).
For example, given [1,2,3,4], return [24,12,8,6].
Solution:
//小型dp,左边乘积再乘以右边乘积
//从左向右扫一遍,再从右向左扫一遍
//time:O(n)
//space:O(n)
class Solution {
public int[] productExceptSelf(int[] nums) {
if(nums == null || nums.length == 0) return nums;
int[] res = new int[nums.length];
res[0] = 1;
for(int i=1 ; i<nums.length ; i++){
res[i] = res[i-1] * nums[i-1];
}
int right = 1;
for(int i=nums.length-1 ; i>=0 ; i--){
res[i] *= right;
right *= nums[i];
}
return res;
}
}
Date:2018年1月30日