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 春招闯关活动」, 点击查看活动详情