정수 배열이 주어지면 해당 배열 의 nums두 가지 다른 인덱스를 선택합니다 . 의 최대값을 반환합니다 . ij (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
제약:
2 <= nums.length <= 500
1 <= nums[i] <= 10^3
class Solution:
@staticmethod
def maxProduct(nums):
max1, max2 = 0, 0
for num in nums:
if num > max1:
max2 = max1
max1 = num
elif num > max2:
max2 = num
return (max1 - 1) * (max2 - 1)