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