zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 628 三个数的最大乘积(暴力大法)

    628. 三个数的最大乘积

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

    示例 1:

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

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

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

    PS:
    两种可能,一种全是正数,
    一种两个负数,一个整数
    二者取一

    class Solution {
      
    
        public int maximumProduct(int[] nums) {
            int min1=Integer.MAX_VALUE,min2=Integer.MAX_VALUE;
            int max1=Integer.MIN_VALUE,max2=Integer.MIN_VALUE,max3=Integer.MIN_VALUE;
            for(int i:nums){
                if(i<min2){
                    if(i<min1){
                        min2=min1;
                        min1=i;
                    } else {
                        min2=i;
                    }
                }
                if(i>max3){
                    if(i>max2){
                        if(i>max1){
                            max3=max2;
                            max2=max1;
                            max1=i;
                        } else {
                            max3=max2;
                            max2=i;
                        }
                    } else {
                        max3=i;
                    }
                }
            }
            return Math.max(max3*max2*max1,max1*min1*min2);
        }
    }
    
  • 相关阅读:
    C++ 实现简单快速排序
    LEETCODE 198. House Robber
    leetcode 174
    GIT 版本的回退
    unorderd_map 自定义键值及哈希函数的重载
    互斥锁 形成死锁实例
    leetcode 300
    LeetCode 62
    LeetCode 122
    SVN提交,强制注释
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946340.html
Copyright © 2011-2022 走看看