LeetCode 每日一題 1464. 數組中兩元素的最大乘積

1. 題目

1464. 數組中兩元素的最大乘積

2. 描述

給你一個整數數組 nums,請你選擇數組的兩個不同下標 ij_,_使 (nums[i]-1)*(nums[j]-1) 取得最大值。

請你計算並返回該式的最大值。

3. 思路

將數組進行排序後,取最後的兩元素進行相乘返回即可,主要進行排序操作,時間複雜度爲 O(nlogn)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);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章