LeetCode:三个数的最大乘积628

Posted mrsaver

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:三个数的最大乘积628相关的知识,希望对你有一定的参考价值。

LeetCode:三个数的最大乘积【628】

题目描述

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

示例 1:

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

示例 2:

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

注意:

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

题目分析

  仔细审题,我们发现,数组中元素的可以是负数,这也就说明,不一定是排序后的后三位数字是最大乘积

  那答案可能是两种情况:第一种:最后三位数字;第二种:最小的两个负数和最后一位正数。

  这样一分析,我们就理清了!

NOTE:做题过程中最重要的一个环节是对解的规模进行预估,如果是微小常数级别的,最好要把每一种情况搞清楚

Java题解

class Solution {
    public int maximumProduct(int[] nums) {
        int len = nums.length;
        Arrays.sort(nums);
        int val1 = nums[0]*nums[1]*nums[len-1];
        int val2 = nums[len-1]*nums[len-2]*nums[len-3];
        return Math.max(val1,val2);
    }
}

 

以上是关于LeetCode:三个数的最大乘积628的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 628. 三个数的最大乘积

Leetcode 628.三个数的最大乘积

628. 三个数的最大乘积『简单』

LeetCode_628_数组_三个数的最大乘积

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

⭐算法入门⭐《线性枚举》中等02 —— LeetCode 628. 三个数的最大乘积