这道题十分不容易啊,做到半夜。

class Solution {
public:
static int cmp628(int a, int b)
{
return a > b;
} static int cmp628_2(int a, int b)
{
return abs(a) < abs(b);
} int maximumProduct(vector<int>& nums) {
const int N = ;
int Pos[N];
int Nag[N];
int Nor[N]; int i = , j = , k = ;
for (auto n : nums)
{
if (n >= )
{
Pos[i] = n;
i++;
}
else
{
Nag[j] = n;
j++;
}
Nor[k] = n;
k++;
} sort(Pos, Pos + i, cmp628);
sort(Nag, Nag + j);
sort(Nor, Nor + k, cmp628_2); int a = INT_MIN, b = INT_MIN, c = INT_MIN, d = INT_MIN, max = INT_MIN; //三正
if (i >= )
{
a = Pos[] * Pos[] * Pos[];
if (j >= )
{
b = Pos[] * Nag[] * Nag[];
}
}
else if (i >= )
{
a = Pos[] * Pos[] * Nag[];
if (j >= )
{
b = Pos[] * Nag[] * Nag[];
}
}
if (j >= )
{
c = Nag[] * Nag[] * Nag[];
if (i >= )
{
d = Nag[j - ] * Pos[] * Pos[];
}
else if (i == )
{
d = Nag[] * Nag[] * Pos[];
} }
else if (j >= )
{
c = Nag[] * Nag[] * Pos[];
if (i >= )
{
d = Nag[j - ] * Pos[] * Pos[];
}
else if (i == )
{
d = Nag[] * Nag[] * Pos[];
}
} if (max < a)
max = a;
if (max < b)
max = b;
if (max < c)
max = c;
if (max < d)
max = d; return max;
}
};

最新文章

  1. 深入解析js异步编程利器Generator
  2. Python 历遍目录
  3. ADT for Eclipse无法升级到23.0的解决方法(确保您的网络能够访问google的地址)
  4. 带你入门带你飞Ⅰ 使用Mocha + Chai + Sinon单元测试Node.js
  5. linq中join的用法
  6. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
  7. Java-马士兵设计模式学习笔记-责任链模式-模拟处理Reques Response
  8. MVC中的@Html.DisplayFor等方法如何控制日期的显示格式(转) - Rising
  9. 安装、配置JDK的步骤
  10. WCF 生产json对外的接口
  11. 201521123013 《Java程序设计》第8周学习总结
  12. 1.1 NCE21 Daniel Mendoza
  13. 线程--继承Thread
  14. 爬虫_中国天气网_文字天气预报(xpath)
  15. CSS字体大小之em,px,百分比
  16. 梯度下降法的三种形式BGD、SGD以及MBGD
  17. linux system()函数详解
  18. SQL Server 导入超大脚本
  19. (转)enable_from_this方法的使用与陷阱
  20. java反射机制执行命令

热门文章

  1. java实现二进制的加法
  2. DelphiXE_画图
  3. 解决CentOS 6环境时区、日期、时间同步方法
  4. 重写ddt的mk_test_name方法
  5. 【Prism】MEF版UIComposition
  6. 微服务:Eureka配置集群环境
  7. 机器学习(六)— logistic回归
  8. C++之结构体struct
  9. UVA - 1632 Alibaba (区间dp+常数优化)
  10. Git学习原版手稿