zoukankan      html  css  js  c++  java
  • 力扣(LeetCode)三个数的最大乘积 个人题解

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

    示例 1:

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

    示例 2:

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

    注意:

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

    因为这题里出现了负数,所以最大值并不是简单得取三个最大值就好了。

    参考了评论区的做法,将这个问题分解为:三个最大值的乘积 和 两个最小值和一个最大值的乘积 二者之间取最大值。

    代码如下:

    class Solution {
        public int maximumProduct(int[] nums) {
            int len = nums.length;
            Arrays.sort(nums);
            int ret = nums[0] * nums[1] * nums[len - 1];
            int ret2 = nums[len - 1] * nums[len - 2] * nums[len - 3];
            return ret > ret2 ? ret : ret2;
    
        }
    }
  • 相关阅读:
    css列表
    css字体
    css文本
    css背景
    css里的属性
    MySQL语法大全_自己整理的学习笔记
    必看的 jQuery性能优化的38个建议
    p​h​p​异​常​机​制
    常用软件
    php过滤危险html代码
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10409828.html
Copyright © 2011-2022 走看看