628. 三个数的最大乘积 ( 排序 )

LeetCode:628. 三个数的最大乘积

在这里插入图片描述

排序即可, 因为数组元素可能有负数, 所以需要考虑一种情况,两个最小的负数 * 最大的正数。


AC Code

class Solution {
    
    
    public int maximumProduct(int[] nums) {
    
    
        Arrays.sort(nums);
        int len = nums.length;
        int a = 1, b = 1;
        for(int i = len - 1; i >= 0 && i >= len - 3; i--) a *= nums[i];
        for(int i = 0; i < len && i < 2; i++) b *=  nums[i];
        
        return Math.max(a, b * nums[len - 1]);
    }
}



猜你喜欢

转载自blog.csdn.net/qq_43765535/article/details/112911228