题目描述:
给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。
输入:
nums = [1,2,1,10]
输出:
0
解释:
你不能用边长 1,1,2 来组成三角形。
不能用边长 1,1,10 来构成三角形。
不能用边长 1、2 和 10 来构成三角形。
因为我们不能用任何三条边长来构成一个非零面积的三角形,所以我们返回 0。
代码实现:
import java.util.Arrays;public class Main{public static void main(String[] args) {int[] nums = new int[]{1, 2, 1, 10};System.out.println(largestPerimeter(nums));}public static int largestPerimeter(int[] nums) {//排序Arrays.sort(nums);//从后面开始遍历:for (int i = nums.length - 1; i >= 2; i--) {if (nums[i - 1] + nums[i - 2] > nums[i]) {//两边之和大于第三边return nums[i - 2] + nums[i - 1] + nums[i];}}//不存在则返回0return 0;}
}