码迷,mamicode.com
首页 > 其他好文 > 详细

[Leetcode]628. Maximum Product of Three Numbers

时间:2017-10-27 01:27:15      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:排序   乘积最大   ted   and   action   return   max   最大的   base   


 

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

标签:排序   乘积最大   ted   and   action   return   max   最大的   base   

原文地址:http://www.cnblogs.com/David-Lin/p/7740054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!