你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

LeetCode知识点总结 - 976

2021/12/23 3:56:57

LeetCode 976. Largest Perimeter Triangle

考点难度
SortingEasy
题目

Given an integer array nums, return the largest perimeter of a triangle with a non-zero area, formed from three of these lengths. If it is impossible to form any triangle of a non-zero area, return 0.

思路

三角形必须满足a+b>c。先对所有数排序,选最大的数作为c,第二个和第三个作为a和b,检查是否满足条件。如果不满足说明剩下的数里没有a和b能和这个c满足三角形条件,所以把所有数向前移动一位。

答案
public int largestPerimeter(int[] A) {
        Arrays.sort(A);
        for (int i = A.length - 3; i >= 0; --i)
            if (A[i] + A[i+1] > A[i+2])
                return A[i] + A[i+1] + A[i+2];
        return 0;
}