博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Array]628. Maximum Product of Three Numbers
阅读量:6765 次
发布时间:2019-06-26

本文共 1219 字,大约阅读时间需要 4 分钟。

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:

  1. The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
  2. Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.

思路:给出一个数组找出里面三个元素乘积的最大值并输出。先对整个数组进行排序,考虑到有负数的情况,因此,三个数的乘积有两种情况,2负1正,或者3个正数,如果只三个数便直接输出。

自己代码:

1 int maximumProduct(vector
& nums) {2 sort(nums.begin(), nums.end());3 int n = nums.size();4 if(nums[0] < 0 && nums[1] < 0 && nums[0]*nums[1]*nums[n-1] > nums[n-1]*nums[n-2]*nums[n-3])5 return nums[0]*nums[1]*nums[n-1];6 else 7 return nums[n-1] * nums[n-2] * nums[n-3]; 8 }

优秀代码:

1 int maximumProduct(vector
& nums) {2 sort(nums.begin(), nums.end());3 int n = nums.size();4 int m1 = nums[0]*nums[1]*nums[n-1];5 int m2 = nums[n-1] * nums[n-2] * nums[n-3]; 6 return m1 > m2?m1:m2; //或者 return max(m1, m2);7 }

其实不用检验前面两个元素是否是负数,因为只有两种情况,前面两个,后面一个,或者后面三个。

转载于:https://www.cnblogs.com/qinguoyi/p/7345996.html

你可能感兴趣的文章
css中样式的优先级简单总结
查看>>
端口聚合配置
查看>>
易学笔记--程序猿踩过的十个最典型的坑
查看>>
Systemstate Dump分析经典案例(上)
查看>>
Win7+Ubuntu11
查看>>
克隆centos7后如何改网卡配置文件生效?
查看>>
Razor Components启用服务器渲染 更提升低速网络浏览体验
查看>>
豆瓣的账号登录及api操作
查看>>
python 高阶函数:sorted(排序)
查看>>
前端与移动开发之vue-day1(3)
查看>>
网络osi七层复习,未复习整理完,后续补齐
查看>>
python--004--函数定义
查看>>
在中国,有多少程序员干到40了?那么其他人去干什么了?
查看>>
C盘里的文件夹都是干什么用的?
查看>>
PHP商城 Composer 以及PSR规范
查看>>
一个线程罢工的诡异事件
查看>>
嵌入式培训大纲 看看具体的课程学习内容有哪些
查看>>
华三模拟器telnet远程登陆
查看>>
带外监控
查看>>
淘宝美工技能分享!13个超级有用的PS技巧
查看>>