Leetcode Easy 1464. 一個陣列中兩個元素的最大乘積 1464. Maximum Product of Two Elements in an Array 題目 原題目 1 2 3 4 5 6 + 英文: - Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1). + 中文: - 給定一個整數陣列 nums,請你選擇陣列中兩個不同的指數。回傳 (nums[i]-1)*(nums[j]-1) 的最大值。 - 請回傳 nums 的 累積和。 測資一 1 2 3 + 輸入: nums = [3,4,5,2] + 輸出: 12 - 解釋: 如果指數 i = 1 和 j = 3(索引值從0開始),可以得到最大值,(nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12 。 測資二 1 2 3 + 輸入: nums = [1,5,4,5] + 輸出: 16 - 解釋: 如果指數 i = 1 和 j = 3(索引值從0開始),可以得到最大值,(5-1)*(5-1) = 16 。 測資三 1 2 + 輸入: nums = [3,7] + 輸出: 12 解題思路 再這題當中,分成兩個部分: 要找到最大值的索引 i 和第二大值的索引 j。 代入公式 (nums[1]-1)*(nums[2]-1),並回傳結果。 Java 思路 先排序陣列,即可取得最大值和最小值。套上公式即可。 Python 思路 跟Java解題思路是一樣的。 答案 此題答案以 Java 解! 1 2 3 4 5 6 7 8 9 10 class Solution { public int maxProduct(int[] nums) { // 先排序陣列 Arrays.sort(nums); // 代入公式並回傳 return (nums[nums.length-1] - 1) * (nums[nums.length-2] - 1); } }