[Leetcode]628. Maximum Product of Three Numbers

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Leetcode]628. Maximum Product of Three Numbers相关的知识,希望对你有一定的参考价值。


 

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

Example 1:

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

 

Example 2:

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

 

Note:

  1. The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
  2. Multiplication of any three numbers in the input won‘t exceed the range of 32-bit signed integer.

 

思路:乘积最大,则肯定是寻找三个绝对值最大的数相乘。所以先把数组排序,这样数值最大的数为最后三个。第一反应应该会认为

数组末尾三个数乘积就是答案了。但是数组里可能还会有负数,如果数组最开头两个数是负数,且绝对值很大,则答案可能是头两个数

和数组末尾的那个数相乘;

 

1 class Solution {
2     public int maximumProduct(int[] nums) {
3         Arrays.sort(nums);
4         int p = nums.length;
5         int product1 = nums[p-1]*nums[p-2]*nums[p-3];
6         int product2 = nums[p-1]*nums[0]*nums[1];
7         return product1>product2?product1:product2;
8     }
9 }

 

以上是关于[Leetcode]628. Maximum Product of Three Numbers的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode-628-Maximum Product of Three Numbers]

[Leetcode]628. Maximum Product of Three Numbers

leetcode-628-Maximum Product of Three Numbers

[LeetCode&Python] Problem 628. Maximum Product of Three Numbers

LeetCode 628. Maximum Product of Three Numbers三个数的最大乘积 (C++)

628. Maximum Product of Three Numbers@python