力扣628.三个数的最大乘积
力扣628三个数的最大乘积
题目描述
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例1
输入:nums = [1,2,3]输出:6
示例 2:
输入:nums = [1,2,3,4]输:24
示例 3:
输入:nums = [-1,-2,-3]输出:-6
提示:
3 <= nums.length <= 104-1000 <= nums[i] <= 1000
笔者感悟
本题具有一定的数学思维和方法运用
数学思维
在这样一个整数数组其中三个数的最大计算乘积怎样计算,它是本题的核心。
由题分析可知存在两种不同情况获得相应答案
1、 数字全部为正数或者负数,取最大三个整数的乘积即可
2、 负数和正数都存在,且最小的两个负数的乘积较大,取最小两个负数的乘积再乘上最大正数
所以我们可以把两种情况下的答案都算出来,然后再比较大小
编写技巧
1.在c++中,我们可以使用sort函数将数组进行排序
2.再用max函数判断,或其他方式判断情况
笔者解法
1 | class Solution { |
读者须知
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 随意!
评论
ValineDisqus




