세 숫자의 최대 곱

3628 단어
정수 배열 nums가 주어지면 곱이 최대인 세 개의 숫자를 찾고 최대 곱을 반환합니다.

예 1:

입력: 숫자 = [1,2,3]
출력: 6
예 2:

입력: 숫자 = [1,2,3,4]
출력: 24
예 3:

입력: 숫자 = [-1,-2,-3]
출력: -6

/**
 * @param {number[]} nums
 * @return {number}
 */
//only two possible cases can give max product if we have all positive then last 3 numbers & 
// if we have combination of positive negative then multiply first two & with last element 
// Reason if we have 2 negative it will turn out to be positive number
var maximumProduct = function (nums) {
  let sortedNums = [...nums].sort((a, b) => a - b);

  return Math.max(
    sortedNums[0] * sortedNums[1] * sortedNums[sortedNums.length - 1],
    sortedNums[sortedNums.length - 1] *
      sortedNums[sortedNums.length - 2] *
      sortedNums[sortedNums.length - 3]
  );
};

console.log(maximumProduct([1, 2, 3]));

console.log(maximumProduct([-100, -98, -1, 2, 3, 4]));

좋은 웹페이지 즐겨찾기