1464. 数组中两元素的最大乘积(2026.07.27)

1464. 数组中两元素的最大乘积(2026.07.27)
题目描述给你一个整数数组nums请你选择数组的两个不同下标i和j使(nums[i]-1)*(nums[j]-1)取得最大值。请你计算并返回该式的最大值。示例 1输入nums [3,4,5,2]输出12解释选择下标i1和j2下标从 0 开始可以获得最大值(4-1)*(5-1) 3*4 12。示例 2输入nums [1,5,4,5]输出16解释选择下标i1和j3可以获得最大值(5-1)*(5-1) 16。示例 3输入nums [3,7]输出12提示2 nums.length 5001 nums[i] 10^3苯人思路classSolution{public:intmaxProduct(vectorintnums){sort(nums.begin(),nums.end());intnnums.size();// 输出 最大两个数-1后的乘积 和最小两个数-1后的乘积 中较大的那个// 此处考虑了 nums 元素为负数的情况return((nums[n-1]-1)*(nums[n-2]-1)(nums[0]-1)*(nums[1]-1))?(nums[n-1]-1)*(nums[n-2]-1):(nums[0]-1)*(nums[1]-1);}};