628. Maximum Product of Three Numbers

Given an integer array nums, find three numbers whose product is maximum and return the maximum product.

 

Example 1:

Input: nums = [1,2,3]
Output: 6

Example 2:

Input: nums = [1,2,3,4]
Output: 24

Example 3:

Input: nums = [-1,-2,-3]
Output: -6

 

Constraints:

  • 3 <= nums.length <= 104
  • -1000 <= nums[i] <= 1000

Rust Solution

struct Solution;

impl Solution {
    fn maximum_product(mut nums: Vec<i32>) -> i32 {
        nums.sort_unstable();
        let n = nums.len();
        i32::max(
            nums[0] * nums[1] * nums[n - 1],
            nums[n - 1] * nums[n - 2] * nums[n - 3],
        )
    }
}

#[test]
fn test() {
    let nums = vec![1, 2, 3];
    assert_eq!(Solution::maximum_product(nums), 6);
    let nums = vec![1, 2, 3, 4];
    assert_eq!(Solution::maximum_product(nums), 24);
}

Having problems with this solution? Click here to submit an issue on github.