1464. 数组中两元素的最大乘积(2026.07.27)
2026/7/27 19:53:09 网站建设 项目流程

题目描述

给你一个整数数组nums,请你选择数组的两个不同下标ij,使(nums[i]-1)*(nums[j]-1)取得最大值。

请你计算并返回该式的最大值。

示例 1

输入:nums = [3,4,5,2]
输出:12
解释:选择下标i=1j=2(下标从 0 开始),可以获得最大值(4-1)*(5-1) = 3*4 = 12

示例 2

输入:nums = [1,5,4,5]
输出:16
解释:选择下标i=1j=3,可以获得最大值(5-1)*(5-1) = 16

示例 3

输入:nums = [3,7]
输出:12

提示

  • 2 <= nums.length <= 500
  • 1 <= nums[i] <= 10^3

苯人思路

classSolution{public:intmaxProduct(vector<int>&nums){sort(nums.begin(),nums.end());intn=nums.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);}};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询