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