LeetCode
来源:互联网 发布:php hmacsha256 编辑:程序博客网 时间:2024/05/29 03:51
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.
找出三个数使得乘积最大,实在不知道这题有啥好写的。。。
排序要O(nlogn)所以写了个O(n)的做法,不过确实感觉挺无聊的。。。
class Solution {public: int maximumProduct(vector<int>& nums) { int n = nums.size(); int num1 = max(nums[0], max(nums[1], nums[2])); int num3 = min(nums[0], min(nums[1], nums[2])); int num2 = nums[0] + nums[1] + nums[2] - num1 - num3; int mmin1 = num3; int mmin2 = num2; for (int i = 3; i < n; ++i) { if (nums[i] > num1) { num3 = num2; num2 = num1; num1 = nums[i]; } else if (nums[i] > num2) { num3 = num2; num2 = nums[i]; } else if (nums[i] > num3) { num3 = nums[i]; } if (nums[i] < mmin1) { mmin2 = mmin1; mmin1 = nums[i]; } else if (nums[i] < mmin2) { mmin2 = nums[i]; } } int ans = num1 * num2 * num3; ans = max(ans, num1 * mmin1 * mmin2); return ans; }};
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- 多属性决策
- 监督学习与无监督学习
- 动态代码创建布局
- 排序算法java实现
- 软件测试专用名词
- LeetCode
- 数学-初等-完全平方(和)差公式
- windows 多线程: CreateThread、_beginthread、_beginthreadex、AfxBeginThread 的区别
- 搜索专题: HDU1026Ignatius and the Princess I
- HDU 1541 & POJ 2352 Stars (树状数组)
- 【纯吐槽】
- [占坑,暂时只写了大纲!] 凸优化笔记----2017 HIT 暑期学校学到的一点儿东西
- hdu2594(KMP水题)
- linux编译安装软件 ./configure命令enable和with有什么区别