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

力扣(LeetCode)三个数的最大乘积 个人题解

时间:2019-02-21 00:24:18      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:参考   arrays   code   最大   max   rod   solution   .so   示例   

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:

输入: [1,2,3]
输出: 6

示例 2:

输入: [1,2,3,4]
输出: 24

注意:

  1. 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
  2. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。

 

因为这题里出现了负数,所以最大值并不是简单得取三个最大值就好了。

参考了评论区的做法,将这个问题分解为:三个最大值的乘积 和 两个最小值和一个最大值的乘积 二者之间取最大值。

 

代码如下:

class Solution {
    public int maximumProduct(int[] nums) {
        int len = nums.length;
        Arrays.sort(nums);
        int ret = nums[0] * nums[1] * nums[len - 1];
        int ret2 = nums[len - 1] * nums[len - 2] * nums[len - 3];
        return ret > ret2 ? ret : ret2;

    }
}

 

力扣(LeetCode)三个数的最大乘积 个人题解

标签:参考   arrays   code   最大   max   rod   solution   .so   示例   

原文地址:https://www.cnblogs.com/axiangcoding/p/10409828.html

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