The Fake Geek's blog: Self Excluding Product
Read full article from The Fake Geek's blog: Self Excluding Product
* Implement a method which takes an integer array and returns an integer array (of equal size) in
* which each element is the product of every number in the input array with the exception of the
* number at that index.
*
* Example:
* [3, 1, 4, 2] => [8, 24, 6, 12]
*/
public int[] selfExcludingProduct(int[] input) {
// implementation...
}
public int[] selfExcludingProduct (int[] input) { if (input == null) throw new NullPointerException ("Null input array!"); int[] productArray = new int[input.length]; if (input.length == 0) return productArray; int product = 1; int numOfZeros = 0; for (int i = 0; i < input.length; i++) { if (input[i] != 0) product *= input[i]; else numOfZeros++; if (numOfZeros >= 2) { return productArray; } } for (int i = 0; i < input.length; i++) { if (numOfZeros == 0) { productArray[i] = product / input[i]; } else { if (input[i] == 0) productArray[i] = product; else productArray[i] = 0; } } return productArray; }