计算最大数
对数组进行排序,取最大的n个数和 (最大数*(绝对值乘积最大的数)),两者取最大值即为最大数。
/** * 題目:求一个整数数组中的三个数最大乘积 * 思路:若全是正數,則数组按顺序排序后,最大三个数的乘积即为最大值 * 若全是负数,同样最大三个数的乘积即为最大值 * 若既有正数也有负数,则;两数的绝对值最大值*最大正数 * 两数的绝对值= (两最大正数的乘积 或者两最小负数的乘积) */ public long getMax(int[] args) { Arrays.sort(args); int length = args.length; //全正数和全负数的最大值 int maxNum = args[length-1] * args[length-2] * args[length-3]; //既有正数也有负数 // int maxNum2 = args[length-1] * (两数的绝对值最大值 = ) int maxNum2 = args[length-1] * args[0] * args[1]; int maxNum3 = args[length-1] * args[length-2] * args[length-3]; return Math.max(maxNum, maxNum2); }
标签:积累,乘积,int,最大值,args,length,算法,正数 From: https://www.cnblogs.com/UUUz/p/18592623