首页 > 其他分享 >leetcode-628. 三个数的最大乘积

leetcode-628. 三个数的最大乘积

时间:2023-01-02 23:25:16浏览次数:62  
标签:return 乘积 nums int minusBig 628 len leetcode

628. 三个数的最大乘积 - 力扣(Leetcode)

排序后取最小的两个数和最大的数的乘积与前三大的乘积的最大值,防止最小的两个数是负数,负负得正

取这5个数的过程,其实可以直接一次遍历出来,但是排序可以调用标准库

func maximumProduct(nums []int) int {
    sort.Ints(nums)

    // minusBig := 0
    // if nums[0] < 0 && nums[1] < 0 {
    //     minusBig = nums[0] * nums[1] * nums[len(nums)-1]
    // }

    // zBig := nums[len(nums)-1]*nums[len(nums)-2]*nums[len(nums)-3]

    // if zBig < minusBig {
    //     return minusBig
    // }

    return max(nums[0] * nums[1] * nums[len(nums)-1], nums[len(nums)-1]*nums[len(nums)-2]*nums[len(nums)-3])

    // return zBig
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}

标签:return,乘积,nums,int,minusBig,628,len,leetcode
From: https://www.cnblogs.com/wudanyang/p/17020819.html

相关文章