1. 题目
2. 描述
给你一个整数数组
nums
,请你选择数组的两个不同下标i
和j
_,_使(nums[i]-1)*(nums[j]-1)
取得最大值。请你计算并返回该式的最大值。
3. 思路
将数组进行排序后,取最后的两元素进行相乘返回即可,主要进行排序操作,时间复杂度为 O ( n ∗ l o g n ) O(n*logn)O(n∗logn).
4. 实现
public int maxProduct(int[] nums) { // 现将数组进行排序 Arrays.sort(nums); // 然后选取排序后数组的最后两个元素乘积 int size = nums.length; return (nums[size - 1] - 1) * (nums[size - 2] - 1); }