Time – O(n)
Space – 0(1) – Neglecting the output array that is expected to be returned.
class Solution { public int[] productExceptSelf(int[] nums) { int n = nums.length; int[] output = new int[n]; int temp = 1; // product from left to right excluding nums[i] for (int i = 0; i < n; i++) { output[i] = temp; temp *= nums[i]; } temp = 1; // product from right to left excluding nums[i] for (int i = n - 1; i >= 0; i--) { output[i] *= temp; temp *= nums[i]; } return output; } }