zoukankan      html  css  js  c++  java
  • leetCode-Maximum Product of Three Numbers

    Description:
    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:

        The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
        Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.

    Solution:

    class Solution {
            public int maximumProduct(int[] nums) {
            int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN_VALUE, min1 = Integer.MAX_VALUE, min2 = Integer.MAX_VALUE;
            //这段求最大三个数的代码很巧妙
            for (int n : nums) {
                if (n > max1) {
                    max3 = max2;
                    max2 = max1;
                    max1 = n;
                } else if (n > max2) {
                    max3 = max2;
                    max2 = n;
                } else if (n > max3) {
                    max3 = n;
                }
    
                if (n < min1) {
                    min2 = min1;
                    min1 = n;
                } else if (n < min2) {
                    min2 = n;
                }
            }
            return Math.max(max1*max2*max3, max1*min1*min2);
        }
    }

    总结:找出最大的三个数,最小的两个数,返回max(max1*max2*max3,max1*min1*min2)

    版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    第6章 函数 习题
    2. VS使用---HelloWorld
    [计蒜客]小 B 的题目
    [计蒜客] n 子棋
    [博弈]Euclid's Game
    [博弈]A Funny Game
    [博弈]Being a Good Boy in Spring Festival
    [组合数学]Magic 12 Months(坑)
    [PTA]L2-031 深入虎穴 (25 分)
    [天梯赛]L2-029 特立独行的幸福
  • 原文地址:https://www.cnblogs.com/kevincong/p/7887606.html
Copyright © 2011-2022 走看看