力扣-628 三个数的最大乘积
题目描述
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例
示例 1:
输入: [1,2,3]
输出: 6
示例 2:
输入: [1,2,3,4]
输出: 24
注意:
给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。
源代码
思路:考虑四种情况即可:
先排序找到最大的三个数,这三个数:
1.全部小于零
2.有一个大于零
3.有两个大于零
4.全部大于零
class Solution {public:int maximumProduct(vector<int>& nums) {int n=nums.size();sort(nums.begin(),nums.end());int ans;if(nums[n-1]<=0&&nums[n-2]<=0&&nums[n-3]<=0) ans=nums[n-1]*nums[n-2]*nums[n-3];if(nums[n-1]>=0&&nums[n-2]<=0&&nums[n-3]<=0) ans=nums[n-1]*nums[0]*nums[1];if(nums[n-1]>=0&&nums[n-2]>=0&&nums[n-3]<=0) ans=nums[n-1]*nums[0]*nums[1];if(nums[n-1]>=0&&nums[n-2]>=0&&nums[n-3]>=0) ans=max(nums[n-1]*nums[n-2]*nums[n-3],nums[n-1]*nums[0]*nums[1]);return ans;}
};
复杂度分析:
时间复杂度:O(NlogN),其中 N为数组长度。排序需要O(NlogN) 的时间。
空间复杂度:O(logN),主要为排序的空间开销。
力扣-628 三个数的最大乘积相关推荐
- 力扣628. 三个数的最大乘积
题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 示例 1:输入:nums = [1,2,3] 输出:6示例 2:输入:nums = [1,2,3,4 ...
- leetcode 628. Maximum Product of Three Numbers | 628. 三个数的最大乘积(Java)
题目 https://leetcode-cn.com/problems/maximum-product-of-three-numbers/ 题解 找到三个数的最大乘积.先给数组排序,考虑可能有负数的情 ...
- LeetCode 628. 三个数的最大乘积
1. 题目 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6示例 2: 输入: [1,2,3,4] 输出: 24注意: 给定的整型 ...
- leetcode(3)——414. 第三大的数(C++中的 set,::作用符号,迭代器),628 三个数的最大乘积(sort函数的用法)
文章目录 前言 414 程序 疑惑 set ::在c++中什么意思 一.作用域符号: 二.全局作用域符号: 三.作用域分解运算符: C++ 迭代器 628 程序 疑惑 sort函数 前言 大佬的程序, ...
- leetcode 628. 三个数的最大乘积(排序)
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 解题思路 最大的乘积可能有两种情况 1.两个最小负数和一个最大正数 2.三个最大 ...
- 623.三个数的最大乘积
623.三个数的最大乘积 题目 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: ...
- 整型数组中三个数的最大乘积
题目:给定一个整形数组,在数组中找出由三个数组成的最大乘积. 示例1: 输入:{1,2,3} 输出: 6 示例2:{1,2,3,4} 输出: 24 ** 思路:先给数组排序,最大的数分为两种情况,一种 ...
- 牛客题霸 [三个数的最大乘积]C++题解/答案
牛客题霸 [三个数的最大乘积]C++题解/答案 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1). 题解: 有人说 ...
- 力扣第三题java_LeetCode 题解 | 力扣杯 LCP 06. 拿硬币
力扣杯 LCP 06. 拿硬币(点击查看题目) 力扣leetcode-cn.com 题目描述 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中.我们每次可以选择任意一堆,拿走其中的一枚或者 ...
- leetcode628. 三个数的最大乘积(简单,我觉得你不会)
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入:nums = [1,2,3] 输出:6 示例 2: 输入:nums = [1,2,3,4] 输出: ...
最新文章
- VirtualBox上装CentOS5.8网络不通问题
- 将一列数据转换成一个字段数据,逗号分隔
- gin-vue-blog自建博客
- 使用HIBERNATE的SQL查询并将结果集自动转换成POJO
- Android和iOS智能机去年出货超7亿 同比增长46%
- geforce experience_Nvidia? Geforce? Experience?是什么?如何使用呢?
- Jquery遮罩插件,想罩哪就罩哪!
- 如何购买微软的wince 等授权组件等?(找到了!)
- Unity3D学习笔记
- 2021年微信小程序点餐系统功能模板搭建
- 推到 旋转矩阵公式_想知道旋转矩阵的带入公式
- logback教程logback快速入门超实用详细教程收藏这一篇就够了(万字长文)
- QT Creator 5.1.2中英文切换
- 使用 mongorestore恢复数据以及使用 Studio 3T GUI 管理数据库
- php--spry框架读取显示xml数据
- YLAN_TRANSLATE ABAP程序批量翻译工具
- 云计算中paas,laas,saas的区别
- 湖北职称英语和职称计算机考试,湖北职称英语考试
- Java爬虫系列(五) - 爬虫补充内容+ElasticSearch展示数据
- 【Wikipedia爬虫工具包的使用】请求超时、代理错误、SSLError
热门文章
- .NET基础拾遗(6)ADO.NET与数据库开发基础
- CentOS 7 重装mysql编译过程报错解决方法
- listView中的button控件获取索引
- 操作~拷贝clone()
- js获取窗口宽度高度
- 快速从小白到大牛的Python学习路线
- 【论文解读】基于边界感知神经网络进行嵌套命名实体识别
- 【干货】400+页的《面向机器学习的数学》pdf
- 一道头条面试题,小夕差点没读懂题目,找出数组中缺失的数字,最近击败100%的用户!...
- 每日算法系列【LeetCode 128】最长连续序列