package com.interview.array; /** * http://www.careercup.com/question?id=5179916190482432 * Look out for division by 0 */ public class MultiplyAllFieldsExceptOwnPosition { public int[] multiply(int nums[]) { if (nums.length == 0) { return new int[0]; } int[] output = new int[nums.length]; int product = nums[0]; for (int i = 1; i < nums.length; i++) { output[i] = product; product *= nums[i]; } output[0] = 1; product = nums[nums.length - 1]; for (int i = nums.length - 2; i >= 0; i--) { output[i] *= product; product *= nums[i]; } return output; } }