leetcode628. 三个数的最大乘积|刷题打卡

111 阅读1分钟

leetcode628. 三个数的最大乘积

题目描述:

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例1:

输入:nums = [1,2,3]
输出:6

示例2:

输入:nums = [1,2,3,4]
输出:24

示例3:

输入:nums = [-1,-2,-3]
输出:-6

代码模版(swift)

class Solution {
    func maximumProduct(_ nums: [Int]) -> Int {

    }
}

思路(排序后选择)

因为需要选择三个数,排序后选择最后三个数和最小的前两个数(可能是两个负数的绝对值大)乘最后一个数的最大值即可

class Solution {
    func maximumProduct(_ nums: [Int]) -> Int {
        let arr = nums.sorted()
        let count = nums.count
        let minus = arr[0] * arr[1] * arr[count - 1]
        let plus = arr[count - 1] * arr[count - 2] * arr[count - 3]
        return minus > plus ? minus : plus
    }
}

本文正在参与「掘金 2021 春招闯关活动」, 点击查看活动详情