三个数的最大乘积
题目:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)。
思路:
代码:
1 /** 2 * 最大乘积 3 * @param A int整型一维数组 4 * @return long长整型 5 */ 6 function solve( A ) { 7 // write code here 8 A = A.sort((a,b) => (a-b)); 9 let ALen = A.length; 10 let val0 = A[0]*A[1]*A[2]; 11 let val1 = A[0]*A[1]*A[ALen - 1]; 12 let val2 = A[ALen - 1]*A[ALen - 2]*A[ALen - 3]; 13 return Math.max(val0, val1, val2); 14 } 15 module.exports = { 16 solve : solve 17 };

浙公网安备 33010602011771号