[LeetCode] 628. Maximum Product of Three Numbers_Easy
2024-10-13 22:42:13
Given an integer array, find three numbers whose product is maximum and output the maximum product.
Example 1:
Input: [1,2,3]
Output: 6
Example 2:
Input: [1,2,3,4]
Output: 24
Note:
- The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
- Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.
这个题目就是需要注意负数的情况即可, 我们如果用排序的话, 比较max(nums[0]*nums[1]*nums[-1], nums[-1]*nums[-2]*nums[-3])即可. T: O(nlgn)
要T: O(n) 的话就需要得到min1, min2, max1, max2, max3同理比较max(min1 * min2 * max1, max1 * max2 * max3)即可.
Code
1) T: O(nlgn)
class Solution:
def maxProduct3nums(self, nums):
nums.sort()
return max(nums[0]*nums[1]*nums[-1], nums[-1]*nums[-2]*nums[-3])
2) T: O(n)
class Solution:
def maxProduct3nums(self, nums):
ans = [1001]*2 + [-1001]*3 # min1, min2, max1, max2, max3
for num in nums:
if num > ans[-1]:
ans[-1], ans[-2], ans[-3] = num, ans[-1], ans[-2]
elif num > ans[-2]:
ans[-2], ans[-3] = num, ans[-2]
elif num > ans[-3]:
ans[-3] = num
if num < ans[0]:
ans[0], ans[1] = num, ans[0]
elif num < ans[1]:
ans[1] = num
return max(ans[0]*ans[1]*ans[-1], ans[-1]*ans[-2]*ans[-3])
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-WebApi与Unity注入
- 使用Github进行合作开发
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
- Redis学习笔记1-Redis的介绍和认识
- Dubai Princess and Prince!
- select 支持宽高(高度有兼容问题);
- Java编程思想学习(十五) 注解
- list删除操作 java.util.ConcurrentModificationException
- DELPHI 多线程
- SQl为表添加和删除列
- java进程卡死问题
- SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表
- 关于CSRF的攻击
- [补档][Lydsy2017年4月月赛]抵制克苏恩
- Hive案例05-学生成绩表综合案例
- bindpose定义
- 【XMPP】Smack源码之消息接收与解析
- Java 强制类型转换
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping的区别
- js - 预加载+监听图片资源加载制作进度条