力扣628(java)-三个数的最大乘积(简单)

题目:

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

示例 1:

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

输入:nums = [1,2,3,4]
输出:24
示例 3:

输入:nums = [-1,-2,-3]
输出:-6

提示:

3 <= nums.length <= 104
-1000 <= nums[i] <= 1000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

方法一:

1.先利用冒泡排序,将数组从大到小进行排序;

2.计算最大值

     如果数组中元素都是正数或负数,最大乘积就是排序后的前三个数的乘积;

     如果数组中元素有正有负,最大乘积就是排序后的第一个数和最后两个数的乘积。

代码1:

力扣628(java)-三个数的最大乘积(简单)

 

 但用时很长!!!力扣628(java)-三个数的最大乘积(简单)

 

 方法二:

与方法一思路一致,但使用了更简洁的代码

1.将数组进行排序,从小到大;

2.也思考两种情况

    如果数组中的数都为正数或者负数,则最大乘积就是排序后数组的最后三个数的乘积;

    如果数组中的数有正有负,则最大乘积就是排序后数组中第一第二个数与最后一个数的乘积。

代码2:

力扣628(java)-三个数的最大乘积(简单)

 

 力扣628(java)-三个数的最大乘积(简单)

 

小知识:

1.冒泡排序!!!

2.Arrays.toString():想直接把数组中的内容打印出来,直接调用Arrays类中的toString()方法

   直接使用toString方法只会打印出数组的地址

    注意:Arrays是一个工具类,toString()是方法,该方法支持入参可以是long,float,double,int,boolean,byte,object
型的数组。

3.Arrays.sort(int[] a):是对一个数组的所有元素进行排序,并且是按从小到大的顺序。

4..Math.max(参数1,参数2)是一个静态的工具方法,主要用来比较两个相同类型参数的大小,支持的类型有double,float,int,long四种类型。

 

上一篇:Mybatis 定义 Oracle 存储过程,并获取存储输出字符串信息


下一篇:将数字串转化为字符串的子函数