zoukankan      html  css  js  c++  java
  • 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);
        }
    }
    
  • 相关阅读:
    备用
    Python进阶
    *args 和 **kwargs
    C语言
    【Pythno库】-Re
    【C语言】-struct
    Django By Example
    字符串
    Python库
    【Keil】Keil5-改变字的大小和颜色
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9557646.html
Copyright © 2011-2022 走看看