# Leetcode 1464: Maximum product of two elements in an array

1 min readJun 12, 2020

--

In this Leetcode problem, we are asked to compute the maximum product of 2 elements in the array, knowing that the elements are positive.

# Solution

- According to the constraints, all numbers are positive ( >0 )
- Therefore the problem is equivalent to finding the 2 highest numbers in the array
`(a, b)`

, and return the given product`(a - 1)(b - 1)`

- We maintain
`a`

and`b`

by iterating through the array - We maintain
`a ≤ b`

at each step - Algorithm is
`O(n)`

, with`n`

the size of the array; it is more efficient than sorting the array directly.

`public int maxProduct(int[] nums) {`

int a = 0;

int b = 0;

for (int num : nums) {

if (num > a) {

a = num;

}

if (a > b) {

// swap to maintain a <= b

int ret = a;

a = b;

b = ret;

}

}

return (a - 1) * (b - 1);

}

Happy coding :)

# What’s next:

- Checkout the solution for another problem: Rearrange words in a sentence
- Contact me: poitevinpm@gmail.com
- Looking to interview for a software engineer position? Contact me :)