如果纠错是消除软件bug的过程,那编程一定是把它们放进去的过程。
每天五分钟,看懂一道简单、中等难度的算法题,尽可能将复杂的题讲清楚。
疯狂学习python中,2020-09-04更新
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3] 输出: 6
示例 2:
输入: [1,2,3,4] 输出: 24
注意:
给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
先将数组按照从小到大的顺序排序,得到三种情况:
如果数组均为正数或者负数个数为1,则最大值为数组后三位的乘积如果数组均为负数,则最大值为数组后三位的乘积如果数组有正有负负数个数大于2,乘积最大值为排序数组前两个负数与数组最后一个正数相乘 nums = [1,2,3,4,6,2,5,7] class Solution: def maximumProduct(self, nums: List[int]) -> int: nums.sort() return max(nums[-1] * nums[-2] * nums[-3], nums[0] * nums[1] * nums[-1]) if __name__ == '__main__': obj = Solution() print(obj.maximumProduct(nums))