首页 > 其他 > 详细

LeetCode 628. Maximum Product of Three Numbers

时间:2019-12-28 19:21:40      阅读:69      评论:0      收藏:0      [点我收藏+]

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

链接

https://leetcode-cn.com/problems/maximum-product-of-three-numbers/submissions

题目

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

示例 1:

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

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

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

思路

简单题,分析一下思路,要求乘积的最大值,那么限定一下范围,只能是三个最大正数相乘,或者两个最小负数相乘再乘最大正数,负负得正。这里采用sort直接排序,偷了个懒,之后算出两种最大值比较输出即可。

代码

  public static int maximumProduct(int[] nums) {
    Arrays.sort(nums);
    int max1 = nums[0] * nums[1] * nums[nums.length - 1];
    int max2 = nums[nums.length - 3] * nums[nums.length - 2] * nums[nums.length - 1];

    return Math.max(max1, max2);
  }
  

LeetCode 628. Maximum Product of Three Numbers

原文:https://www.cnblogs.com/blogxjc/p/12112580.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!