Leetcode Java Maximum Product of Two Elements in an Array

업데이트:

문제

Link

코드

class Solution {

  public int maxProduct(int[] nums) {
    int[] max = new int[] { Integer.MIN_VALUE, Integer.MIN_VALUE };
    for (int num : nums) {
      if (num > max[0]) {
        max[1] = max[0];
        max[0] = num;
      } else if (num > max[1]) {
        max[1] = num;
      }
    }
    return (max[0] - 1) * (max[1] - 1);
  }

}

결과

Link

설명

  1. nums 내 가장 큰 두 값을 이용하여 각 값에서 1을 빼고 곱한 결과를 구하는 문제이다.

  2. max는 가장 큰 두 값을 저장하기 위한 변수로, 두 값을 저장해야하므로 2 크기의 정수 배열에 정수의 가장 작은 값을 넣어 초기화한다.

  3. nums의 모든 값을 반복하여 max에 가장 큰 두 값을 찾아 넣어준다.

  4. 가장 큰 두 값을 이용하여 $(max[0] - 1) \times (max[1] - 1)$를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기