原文:https://bafanglvren.ink/archives/23/
题目
样例
题解
import java.util.Scanner;
public class Main {
static int n;
static int []a;
static Scanner cin;
static int maxEdge;
static int len;
static int ans;
public static void main(String[] args) {
cin = new Scanner(System.in);
n = cin.nextInt();
a = new int[n];
for(int i = 0;i<n;i++) {
a[i] = cin.nextInt();
}
//使得i<j<k,保证不选取重复边
for(int i = 0; i< n;i++) {
for(int j = i+1; j< n;j++) {
for(int k = j+1; k< n;k++) {
//计算周长
len =a[i] + a[j] + a[k];
//最长边
maxEdge = Math.max(Math.max(a[i], a[j]), a[k]);
//剩余两边之和
int rest = len - maxEdge;
//是否能构成三角形
if(rest > maxEdge) {
ans = Math.max(ans, len);
}
}
}
}
System.out.println(ans);
}
}
使用了三重循环,复杂度为n^3。