网站建设的预算,电脑编程培训学校哪家好,北京网优化seo公司,wordpress 主题名称修改题目#xff1a;三角形的最大周长 给定由一些正数(代表长度)组成的数组arr,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形#xff0c;返回0。 分析#xff1a;
对数组排序#xff0c;再从大到小选择三个数#xff0c;再… 题目三角形的最大周长 给定由一些正数(代表长度)组成的数组arr,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形返回0。 分析
对数组排序再从大到小选择三个数再判断是否能构成三角形可以直接返回三数之和不能就把最大的数换掉往小数的方向继续找下一个更新三个数的位置继续判断找到一个就返回
import java.util.Arrays;
/*** author: Arbicoral* create: 2023-07-18 13:07* Description: 三角形的最大周长*/
public class GreedyByMaxPerimeter {public static void main(String[] args) {System.out.println(maxPerimeter(new int[]{3,6,2,3,8,5,9,10,1}));}private static int maxPerimeter(int[] arr) {Arrays.sort(arr);int a,b,c;// a:第三大 b:次大 c:最大for (int i arr.length-1; i1; i--) {c arr[i];b arr[i-1];a arr[i-2];if (isTriangle(a,b,c)){System.out.println(三角形的三边分别为a\tb\tc);return abc;}}return -1;}/*** 判断 a b c 能否组成三角形其中 a b c* 判断条件两边之和 第三边*/private static boolean isTriangle(int a, int b, int c) {return a b c;}
}