정수 배열 nums가 주어졌을 때, 배열에서 두 개의 서로 다른 요소를 선택한 후 (nums[i] - 1) * (nums[j] - 1)의 최대 값을 찾아야 합니다.
예시 1:
입력: nums = [3,4,5,2]
출력: 12
설명: 인덱스 i=1 및 j=2(0에서 인덱스됨)를 선택하면 최대값, 즉 (nums[1)을 얻게 됩니다. ]-1)(숫자[2]-1) = (4-1)(5-1) = 3*4 = 12.
예시 2:
입력: nums = [1,5,4,5]
출력: 16
설명: 인덱스 i=1과 j=3(0에서 인덱스됨)을 선택하면 (5-1)*(5-의 최대값을 얻게 됩니다. 1) = 16.
예시 3:
입력: nums = [3,7]
출력: 12
nums를 순회하면서 각 요소를 확안한다.class MaxProduct {
public int maxProduct(int[] nums) {
int firstMax = 0;
int secondMax = 0;
for (int num : nums) {
if (num > firstMax) {
secondMax = firstMax;
firstMax = num;
} else if (num > secondMax) {
secondMax = num;
}
}
return (firstMax - 1) * (secondMax - 1);
}
public static void main(String[] args) {
MaxProduct product = new MaxProduct();
int[] nums = {3, 4, 5, 2};
int result = product.maxProduct(nums);
System.out.println(result);
}