給你乙個整數陣列 nums,請你選擇陣列的兩個不同下標 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。
請你計算並返回該式的最大值。
示例 1:
輸入:nums = [3,4,5,2]示例 2:輸出:12
解釋:如果選擇下標 i=1 和 j=2(下標從 0開始),則可以獲得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12 。
輸入:nums = [1,5,4,5]示例 3:輸出:16
解釋:選擇下標 i=1 和 j=3(下標從 0 開始),則可以獲得最大值(5-1)*(5-1) = 16 。
輸入:nums = [3,7]輸出:12
class
solution
:def
maxproduct
(self, nums)
:for i in
range
(len
(nums)):
nums[i]
= nums[i]-1
res =
0 left =
0 right =
1while left <
len(nums)-1
:if right ==
len(nums)
: left +=
1if left ==
len(nums)-1
:return res
else
: right = left +
1if nums[left]
* nums[right]
> res:
res = nums[left]
* nums[right]
right +=
1else
: right +=
1return res
就記得雙指標了,傻掉了,其實直接排序,最大的兩個數的乘積一定是最大的。
class
solution
:def
maxproduct
(self, nums)
: nums.sort(
)print
(nums)
return
(nums[-1
]-1)
*(nums[-2
]-1)
陣列中兩元素的最大乘積
給你乙個整數陣列 nums,請你選擇陣列的兩個不同下標 i 和 j,使 nums i 1 nums j 1 取得最大值。請你計算並返回該式的最大值。示例 1 輸入 nums 3,4,5,2 輸出 12 解釋 如果選擇下標 i 1 和 j 2 下標從 0 開始 則可以獲得最大值,nums 1 1 nu...
1464 陣列中兩元素的最大乘積
題目 給你乙個整數陣列 nums,請你選擇陣列的兩個不同下標 i 和 j,使 nums i 1 nums j 1 取得最大值。請你計算並返回該式的最大值。示例 1 輸入 nums 3,4,5,2 輸出 12 解釋 如果選擇下標 i 1 和 j 2 下標從 0 開始 則可以獲得最大值,nums 1 1...
leetcode陣列中兩元素的最大乘積 1464
給你乙個整數陣列 nums,請你選擇陣列的兩個不同下標 i 和 j,使 nums i 1 nums j 1 取得最大值。請你計算並返回該式的最大值。輸入 nums 3,4,5,2 輸出 12 解釋 如果選擇下標 i 1 和 j 2 下標從 0 開始 則可以獲得最大值,nums 1 1 nums 2 ...