1. 程式人生 > 其它 >力扣628(java)-三個數的最大乘積(簡單)

力扣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:

但用時很長!!!

方法二:

與方法一思路一致,但使用了更簡潔的程式碼

1.將陣列進行排序,從小到大;

2.也思考兩種情況

如果陣列中的數都為正數或者負數,則最大乘積就是排序後陣列的最後三個數的乘積;

如果陣列中的數有正有負,則最大乘積就是排序後陣列中第一第二個數與最後一個數的乘積。

程式碼2:

小知識:

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四種類型。