zoukankan      html  css  js  c++  java
  • LeetCode 628. Maximum Product of Three Numbers

    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.

    class Solution {
    public:
        static bool cmp(const int& i, const int& j){
            return i>j;
        }
        int maximumProduct(vector<int>& nums) {
            sort(nums.begin(), nums.end());
            int size = nums.size() - 1;
            int i;
            for(i = size ; i >=0; i--)
                if(nums[i] < 0)
                    break;
            if(i>=0) sort(nums.begin(), nums.begin()+i+1, cmp);
            if(i==size) return nums[0]*nums[1]*nums[2];
            else if(i>=1) return nums[size]*max(nums[size-1]*nums[size-2], nums[i]*nums[i-1]);
            else return nums[size]*nums[size-1]*nums[size-2];
           // return nums[size] * nums[size - 1] * nums[size - 2] >= 0 ? nums[size] * nums[size - 1] * nums[size - 2] : nums[0] * nums[1] * nums[2];
            
        }
    };
    
  • 相关阅读:

    队列
    数据结构简介
    标准模板库
    类模板
    函数模板
    srvctl error
    FLASH BACK
    RAC 设置archive log模式
    CHAPTER 1 Architectural Overview of Oracle Database 11g
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/10079905.html
Copyright © 2011-2022 走看看