标题:最大周长 | 时间限制:1秒 | 内存限制:262144K 编辑
限定语言:不限
小明有一堆木棍,老师让小明拼出三角形,要求周长是最大,木棍只能收尾相连,请你帮助他设计一个程序,快速的找出符合这个条件的三个木棍,并输出周长。
注意:
三角形的任意两条边之和大于第三条边;
无法拼成三角形返回0;
参数nums 代表一组木棍的长度;
示例1
输入
[1,2,1]
输出
0
示例2
输入
[3,6,2,3]
输出
8
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n); // 先将数组从小到大排序
int ans = 0;
for (int i = n - 1; i >= 2; i--) { // 从大到小枚举
if (a[i - 2] + a[i - 1] > a[i]) { // 判断是否是三角形
ans = a[i - 2] + a[i - 1] + a[i];
break;
}
}
cout << ans << endl;
return 0;
}